packages feed

hssqlppp 0.6.1 → 0.6.2

raw patch · 12 files changed

+30381/−30075 lines, 12 filesdep ~containersdep ~haskell-src-extsdep ~pretty-showPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: containers, haskell-src-exts, pretty-show, tasty, tasty-hunit

API changes (from Hackage documentation)

+ Database.HsSqlPpp.Syntax: DefaultConstraint :: Annotation -> String -> ScalarExpr -> RowConstraint
+ Database.HsSqlPpp.Syntax: TableOptionKeywords :: [String] -> TableOption
+ Database.HsSqlPpp.Syntax: TableOptionNameVal :: [String] -> [Name] -> TableOption
+ Database.HsSqlPpp.Syntax: TableOptionNumberVal :: [String] -> String -> TableOption
+ Database.HsSqlPpp.Syntax: TableOptionStringVal :: [String] -> String -> TableOption
+ Database.HsSqlPpp.Syntax: data TableOption
- Database.HsSqlPpp.Annotation: Annotation :: (Maybe SourcePosition) -> (Maybe TypeExtra) -> ([TypeError]) -> (Maybe TypeExtra) -> ([CatalogUpdate]) -> Annotation
+ Database.HsSqlPpp.Annotation: Annotation :: Maybe SourcePosition -> Maybe TypeExtra -> [TypeError] -> Maybe TypeExtra -> [CatalogUpdate] -> Annotation
- Database.HsSqlPpp.Annotation: [anCatUpd] :: Annotation -> ([CatalogUpdate])
+ Database.HsSqlPpp.Annotation: [anCatUpd] :: Annotation -> [CatalogUpdate]
- Database.HsSqlPpp.Annotation: [anErrs] :: Annotation -> ([TypeError])
+ Database.HsSqlPpp.Annotation: [anErrs] :: Annotation -> [TypeError]
- Database.HsSqlPpp.Annotation: [anImplicitCast] :: Annotation -> (Maybe TypeExtra)
+ Database.HsSqlPpp.Annotation: [anImplicitCast] :: Annotation -> Maybe TypeExtra
- Database.HsSqlPpp.Annotation: [anSrc] :: Annotation -> (Maybe SourcePosition)
+ Database.HsSqlPpp.Annotation: [anSrc] :: Annotation -> Maybe SourcePosition
- Database.HsSqlPpp.Annotation: [anType] :: Annotation -> (Maybe TypeExtra)
+ Database.HsSqlPpp.Annotation: [anType] :: Annotation -> Maybe TypeExtra
- Database.HsSqlPpp.Lex: Identifier :: (Maybe (String, String)) -> String -> Token
+ Database.HsSqlPpp.Lex: Identifier :: Maybe (String, String) -> String -> Token
- Database.HsSqlPpp.Syntax: AddColumn :: (Annotation) -> (AttributeDef) -> AlterTableAction
+ Database.HsSqlPpp.Syntax: AddColumn :: Annotation -> AttributeDef -> AlterTableAction
- Database.HsSqlPpp.Syntax: AddConstraint :: (Annotation) -> (Constraint) -> AlterTableAction
+ Database.HsSqlPpp.Syntax: AddConstraint :: Annotation -> Constraint -> AlterTableAction
- Database.HsSqlPpp.Syntax: AggregateApp :: (Annotation) -> (Distinct) -> (ScalarExpr) -> (ScalarExprDirectionPairList) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: AggregateApp :: Annotation -> Distinct -> ScalarExpr -> ScalarExprDirectionPairList -> ScalarExpr
- Database.HsSqlPpp.Syntax: AlterColumn :: (Annotation) -> (NameComponent) -> (AlterColumnAction) -> AlterTableAction
+ Database.HsSqlPpp.Syntax: AlterColumn :: Annotation -> NameComponent -> AlterColumnAction -> AlterTableAction
- Database.HsSqlPpp.Syntax: AlterDatabase :: (Annotation) -> (Name) -> (AlterDatabaseOperation) -> Statement
+ Database.HsSqlPpp.Syntax: AlterDatabase :: Annotation -> Name -> AlterDatabaseOperation -> Statement
- Database.HsSqlPpp.Syntax: AlterLogin :: (Annotation) -> (Name) -> (String) -> Statement
+ Database.HsSqlPpp.Syntax: AlterLogin :: Annotation -> Name -> String -> Statement
- Database.HsSqlPpp.Syntax: AlterSchema :: (Annotation) -> (NameComponent) -> (AlterSchemaOperation) -> Statement
+ Database.HsSqlPpp.Syntax: AlterSchema :: Annotation -> Name -> AlterSchemaOperation -> Statement
- Database.HsSqlPpp.Syntax: AlterSchemaName :: (Annotation) -> (NameComponent) -> AlterSchemaOperation
+ Database.HsSqlPpp.Syntax: AlterSchemaName :: Annotation -> Name -> AlterSchemaOperation
- Database.HsSqlPpp.Syntax: AlterSchemaOwner :: (Annotation) -> (Name) -> AlterSchemaOperation
+ Database.HsSqlPpp.Syntax: AlterSchemaOwner :: Annotation -> Name -> AlterSchemaOperation
- Database.HsSqlPpp.Syntax: AlterSequence :: (Annotation) -> (Name) -> (AlterSequenceOperation) -> Statement
+ Database.HsSqlPpp.Syntax: AlterSequence :: Annotation -> Name -> AlterSequenceOperation -> Statement
- Database.HsSqlPpp.Syntax: AlterSequenceActions :: (Annotation) -> (AlterSequenceActionList) -> AlterSequenceOperation
+ Database.HsSqlPpp.Syntax: AlterSequenceActions :: Annotation -> AlterSequenceActionList -> AlterSequenceOperation
- Database.HsSqlPpp.Syntax: AlterSequenceCache :: (Annotation) -> (Integer) -> AlterSequenceAction
+ Database.HsSqlPpp.Syntax: AlterSequenceCache :: Annotation -> Integer -> AlterSequenceAction
- Database.HsSqlPpp.Syntax: AlterSequenceIncrement :: (Annotation) -> (Integer) -> AlterSequenceAction
+ Database.HsSqlPpp.Syntax: AlterSequenceIncrement :: Annotation -> Integer -> AlterSequenceAction
- Database.HsSqlPpp.Syntax: AlterSequenceMax :: (Annotation) -> ((Maybe Integer)) -> AlterSequenceAction
+ Database.HsSqlPpp.Syntax: AlterSequenceMax :: Annotation -> Maybe Integer -> AlterSequenceAction
- Database.HsSqlPpp.Syntax: AlterSequenceMin :: (Annotation) -> ((Maybe Integer)) -> AlterSequenceAction
+ Database.HsSqlPpp.Syntax: AlterSequenceMin :: Annotation -> Maybe Integer -> AlterSequenceAction
- Database.HsSqlPpp.Syntax: AlterSequenceOwned :: (Annotation) -> (Name) -> AlterSequenceOperation
+ Database.HsSqlPpp.Syntax: AlterSequenceOwned :: Annotation -> Name -> AlterSequenceOperation
- Database.HsSqlPpp.Syntax: AlterSequenceRename :: (Annotation) -> (Name) -> AlterSequenceOperation
+ Database.HsSqlPpp.Syntax: AlterSequenceRename :: Annotation -> Name -> AlterSequenceOperation
- Database.HsSqlPpp.Syntax: AlterSequenceRestart :: (Annotation) -> ((Maybe Integer)) -> AlterSequenceAction
+ Database.HsSqlPpp.Syntax: AlterSequenceRestart :: Annotation -> Maybe Integer -> AlterSequenceAction
- Database.HsSqlPpp.Syntax: AlterSequenceStart :: (Annotation) -> (Integer) -> AlterSequenceAction
+ Database.HsSqlPpp.Syntax: AlterSequenceStart :: Annotation -> Integer -> AlterSequenceAction
- Database.HsSqlPpp.Syntax: AlterTable :: (Annotation) -> (Name) -> (AlterTableOperation) -> Statement
+ Database.HsSqlPpp.Syntax: AlterTable :: Annotation -> Name -> AlterTableOperation -> Statement
- Database.HsSqlPpp.Syntax: AlterTableActions :: (Annotation) -> (AlterTableActionList) -> AlterTableOperation
+ Database.HsSqlPpp.Syntax: AlterTableActions :: Annotation -> AlterTableActionList -> AlterTableOperation
- Database.HsSqlPpp.Syntax: AlterUser :: (Annotation) -> (Name) -> (String) -> Statement
+ Database.HsSqlPpp.Syntax: AlterUser :: Annotation -> Name -> String -> Statement
- Database.HsSqlPpp.Syntax: AlterView :: (Annotation) -> (Name) -> (MaybeNameComponentList) -> (QueryExpr) -> Statement
+ Database.HsSqlPpp.Syntax: AlterView :: Annotation -> Name -> MaybeNameComponentList -> QueryExpr -> Statement
- Database.HsSqlPpp.Syntax: AntiName :: (String) -> Name
+ Database.HsSqlPpp.Syntax: AntiName :: String -> Name
- Database.HsSqlPpp.Syntax: AntiScalarExpr :: (String) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: AntiScalarExpr :: String -> ScalarExpr
- Database.HsSqlPpp.Syntax: AntiStatement :: (String) -> Statement
+ Database.HsSqlPpp.Syntax: AntiStatement :: String -> Statement
- Database.HsSqlPpp.Syntax: App :: (Annotation) -> (Name) -> (ScalarExprList) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: App :: Annotation -> Name -> ScalarExprList -> ScalarExpr
- Database.HsSqlPpp.Syntax: ArrayTypeName :: (Annotation) -> (TypeName) -> TypeName
+ Database.HsSqlPpp.Syntax: ArrayTypeName :: Annotation -> TypeName -> TypeName
- Database.HsSqlPpp.Syntax: Assignment :: (Annotation) -> (Name) -> (ScalarExpr) -> Statement
+ Database.HsSqlPpp.Syntax: Assignment :: Annotation -> Name -> ScalarExpr -> Statement
- Database.HsSqlPpp.Syntax: AttributeDef :: (Annotation) -> (NameComponent) -> (TypeName) -> (MaybeScalarExpr) -> (RowConstraintList) -> AttributeDef
+ Database.HsSqlPpp.Syntax: AttributeDef :: Annotation -> NameComponent -> TypeName -> RowConstraintList -> [TableOption] -> AttributeDef
- Database.HsSqlPpp.Syntax: BinaryOp :: (Annotation) -> (Name) -> (ScalarExpr) -> (ScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: BinaryOp :: Annotation -> Name -> ScalarExpr -> ScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: Block :: (Annotation) -> ((Maybe String)) -> (VarDefList) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: Block :: Annotation -> Maybe String -> VarDefList -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: BooleanLit :: (Annotation) -> (Bool) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: BooleanLit :: Annotation -> Bool -> ScalarExpr
- Database.HsSqlPpp.Syntax: Case :: (Annotation) -> (CaseScalarExprListScalarExprPairList) -> (MaybeScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Case :: Annotation -> CaseScalarExprListScalarExprPairList -> MaybeScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: CaseSimple :: (Annotation) -> (ScalarExpr) -> (CaseScalarExprListScalarExprPairList) -> (MaybeScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: CaseSimple :: Annotation -> ScalarExpr -> CaseScalarExprListScalarExprPairList -> MaybeScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: CaseStatement :: (Annotation) -> (ScalarExprListStatementListTripleList) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: CaseStatement :: Annotation -> ScalarExprListStatementListTripleList -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: CaseStatementSimple :: (Annotation) -> (ScalarExpr) -> (ScalarExprListStatementListTripleList) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: CaseStatementSimple :: Annotation -> ScalarExpr -> ScalarExprListStatementListTripleList -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: Cast :: (Annotation) -> (ScalarExpr) -> (TypeName) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Cast :: Annotation -> ScalarExpr -> TypeName -> ScalarExpr
- Database.HsSqlPpp.Syntax: CheckConstraint :: (Annotation) -> (String) -> (ScalarExpr) -> Constraint
+ Database.HsSqlPpp.Syntax: CheckConstraint :: Annotation -> String -> ScalarExpr -> Constraint
- Database.HsSqlPpp.Syntax: CombineQueryExpr :: (Annotation) -> (CombineType) -> (QueryExpr) -> (QueryExpr) -> QueryExpr
+ Database.HsSqlPpp.Syntax: CombineQueryExpr :: Annotation -> CombineType -> QueryExpr -> QueryExpr -> QueryExpr
- Database.HsSqlPpp.Syntax: ContinueStatement :: (Annotation) -> ((Maybe String)) -> Statement
+ Database.HsSqlPpp.Syntax: ContinueStatement :: Annotation -> Maybe String -> Statement
- Database.HsSqlPpp.Syntax: CopyData :: (Annotation) -> (String) -> Statement
+ Database.HsSqlPpp.Syntax: CopyData :: Annotation -> String -> Statement
- Database.HsSqlPpp.Syntax: CopyFrom :: (Annotation) -> (Name) -> (([NameComponent])) -> (CopyFromSource) -> (([CopyFromOption])) -> Statement
+ Database.HsSqlPpp.Syntax: CopyFrom :: Annotation -> Name -> [NameComponent] -> CopyFromSource -> [CopyFromOption] -> Statement
- Database.HsSqlPpp.Syntax: CopyTo :: (Annotation) -> (CopyToSource) -> (String) -> (([CopyToOption])) -> Statement
+ Database.HsSqlPpp.Syntax: CopyTo :: Annotation -> CopyToSource -> String -> [CopyToOption] -> Statement
- Database.HsSqlPpp.Syntax: CreateDatabase :: (Annotation) -> (Name) -> Statement
+ Database.HsSqlPpp.Syntax: CreateDatabase :: Annotation -> Name -> Statement
- Database.HsSqlPpp.Syntax: CreateDomain :: (Annotation) -> (Name) -> (TypeName) -> (String) -> (MaybeBoolExpr) -> Statement
+ Database.HsSqlPpp.Syntax: CreateDomain :: Annotation -> Name -> TypeName -> String -> MaybeBoolExpr -> Statement
- Database.HsSqlPpp.Syntax: CreateFunction :: (Annotation) -> (Name) -> (ParamDefList) -> (TypeName) -> (Replace) -> (Language) -> (FnBody) -> (Volatility) -> Statement
+ Database.HsSqlPpp.Syntax: CreateFunction :: Annotation -> Name -> ParamDefList -> TypeName -> Replace -> Language -> FnBody -> Volatility -> Statement
- Database.HsSqlPpp.Syntax: CreateIndexTSQL :: (Annotation) -> (NameComponent) -> (Name) -> (([NameComponent])) -> Statement
+ Database.HsSqlPpp.Syntax: CreateIndexTSQL :: Annotation -> NameComponent -> Name -> [NameComponent] -> Statement
- Database.HsSqlPpp.Syntax: CreateLanguage :: (Annotation) -> (String) -> Statement
+ Database.HsSqlPpp.Syntax: CreateLanguage :: Annotation -> String -> Statement
- Database.HsSqlPpp.Syntax: CreateLogin :: (Annotation) -> (Name) -> (String) -> Statement
+ Database.HsSqlPpp.Syntax: CreateLogin :: Annotation -> Name -> String -> Statement
- Database.HsSqlPpp.Syntax: CreateSchema :: (Annotation) -> (NameComponent) -> ((Maybe Name)) -> Statement
+ Database.HsSqlPpp.Syntax: CreateSchema :: Annotation -> Name -> Maybe Name -> Statement
- Database.HsSqlPpp.Syntax: CreateSequence :: (Annotation) -> (Name) -> (Integer) -> ((Maybe Integer)) -> ((Maybe Integer)) -> (Integer) -> (Integer) -> Statement
+ Database.HsSqlPpp.Syntax: CreateSequence :: Annotation -> Name -> Integer -> Maybe Integer -> Maybe Integer -> Integer -> Integer -> Statement
- Database.HsSqlPpp.Syntax: CreateTable :: (Annotation) -> (Name) -> (AttributeDefList) -> (ConstraintList) -> (MaybeTablePartitionDef) -> (Replace) -> Statement
+ Database.HsSqlPpp.Syntax: CreateTable :: Annotation -> Name -> AttributeDefList -> ConstraintList -> MaybeTablePartitionDef -> Replace -> [TableOption] -> Statement
- Database.HsSqlPpp.Syntax: CreateTableAs :: (Annotation) -> (Name) -> (Replace) -> (QueryExpr) -> Statement
+ Database.HsSqlPpp.Syntax: CreateTableAs :: Annotation -> Name -> Replace -> QueryExpr -> Statement
- Database.HsSqlPpp.Syntax: CreateTrigger :: (Annotation) -> (NameComponent) -> (TriggerWhen) -> (([TriggerEvent])) -> (Name) -> (TriggerFire) -> (Name) -> (ScalarExprList) -> Statement
+ Database.HsSqlPpp.Syntax: CreateTrigger :: Annotation -> NameComponent -> TriggerWhen -> [TriggerEvent] -> Name -> TriggerFire -> Name -> ScalarExprList -> Statement
- Database.HsSqlPpp.Syntax: CreateType :: (Annotation) -> (Name) -> (TypeAttributeDefList) -> Statement
+ Database.HsSqlPpp.Syntax: CreateType :: Annotation -> Name -> TypeAttributeDefList -> Statement
- Database.HsSqlPpp.Syntax: CreateUser :: (Annotation) -> (Name) -> (String) -> Statement
+ Database.HsSqlPpp.Syntax: CreateUser :: Annotation -> Name -> String -> Statement
- Database.HsSqlPpp.Syntax: CreateView :: (Annotation) -> (Name) -> (MaybeNameComponentList) -> (QueryExpr) -> Statement
+ Database.HsSqlPpp.Syntax: CreateView :: Annotation -> Name -> MaybeNameComponentList -> QueryExpr -> Statement
- Database.HsSqlPpp.Syntax: DeclareStatement :: (Annotation) -> (([(String, TypeName, Maybe ScalarExpr)])) -> Statement
+ Database.HsSqlPpp.Syntax: DeclareStatement :: Annotation -> [(String, TypeName, Maybe ScalarExpr)] -> Statement
- Database.HsSqlPpp.Syntax: Delete :: (Annotation) -> (Name) -> (TableRefList) -> (MaybeBoolExpr) -> (MaybeSelectList) -> Statement
+ Database.HsSqlPpp.Syntax: Delete :: Annotation -> Name -> TableRefList -> MaybeBoolExpr -> MaybeSelectList -> Statement
- Database.HsSqlPpp.Syntax: DropColumn :: (Annotation) -> (NameComponent) -> AlterTableAction
+ Database.HsSqlPpp.Syntax: DropColumn :: Annotation -> NameComponent -> AlterTableAction
- Database.HsSqlPpp.Syntax: DropDefault :: (Annotation) -> AlterColumnAction
+ Database.HsSqlPpp.Syntax: DropDefault :: Annotation -> AlterColumnAction
- Database.HsSqlPpp.Syntax: DropFunction :: (Annotation) -> (IfExists) -> (NameTypeNameListPairList) -> (Cascade) -> Statement
+ Database.HsSqlPpp.Syntax: DropFunction :: Annotation -> IfExists -> NameTypeNameListPairList -> Cascade -> Statement
- Database.HsSqlPpp.Syntax: DropNotNull :: (Annotation) -> AlterColumnAction
+ Database.HsSqlPpp.Syntax: DropNotNull :: Annotation -> AlterColumnAction
- Database.HsSqlPpp.Syntax: DropSomething :: (Annotation) -> (DropType) -> (IfExists) -> (([Name])) -> (Cascade) -> Statement
+ Database.HsSqlPpp.Syntax: DropSomething :: Annotation -> DropType -> IfExists -> [Name] -> Cascade -> Statement
- Database.HsSqlPpp.Syntax: DropTrigger :: (Annotation) -> (IfExists) -> (NameComponent) -> (Name) -> (Cascade) -> Statement
+ Database.HsSqlPpp.Syntax: DropTrigger :: Annotation -> IfExists -> NameComponent -> Name -> Cascade -> Statement
- Database.HsSqlPpp.Syntax: ExecStatement :: (Annotation) -> (Name) -> (ScalarExprList) -> Statement
+ Database.HsSqlPpp.Syntax: ExecStatement :: Annotation -> Name -> ScalarExprList -> Statement
- Database.HsSqlPpp.Syntax: Execute :: (Annotation) -> (ScalarExpr) -> Statement
+ Database.HsSqlPpp.Syntax: Execute :: Annotation -> ScalarExpr -> Statement
- Database.HsSqlPpp.Syntax: Exists :: (Annotation) -> (QueryExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Exists :: Annotation -> QueryExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: ExitStatement :: (Annotation) -> ((Maybe String)) -> Statement
+ Database.HsSqlPpp.Syntax: ExitStatement :: Annotation -> Maybe String -> Statement
- Database.HsSqlPpp.Syntax: Extract :: (Annotation) -> (ExtractField) -> (ScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Extract :: Annotation -> ExtractField -> ScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: ForIntegerStatement :: (Annotation) -> ((Maybe String)) -> (NameComponent) -> (ScalarExpr) -> (ScalarExpr) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: ForIntegerStatement :: Annotation -> Maybe String -> NameComponent -> ScalarExpr -> ScalarExpr -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: ForQueryStatement :: (Annotation) -> ((Maybe String)) -> (NameComponent) -> (QueryExpr) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: ForQueryStatement :: Annotation -> Maybe String -> NameComponent -> QueryExpr -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: FullAlias :: (Annotation) -> (NameComponent) -> (([NameComponent])) -> (TableRef) -> TableRef
+ Database.HsSqlPpp.Syntax: FullAlias :: Annotation -> NameComponent -> [NameComponent] -> TableRef -> TableRef
- Database.HsSqlPpp.Syntax: FunTref :: (Annotation) -> (ScalarExpr) -> TableRef
+ Database.HsSqlPpp.Syntax: FunTref :: Annotation -> ScalarExpr -> TableRef
- Database.HsSqlPpp.Syntax: Identifier :: (Annotation) -> (Name) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Identifier :: Annotation -> Name -> ScalarExpr
- Database.HsSqlPpp.Syntax: IdentityConstraint :: (Annotation) -> (String) -> (((Maybe (Integer, Integer)))) -> RowConstraint
+ Database.HsSqlPpp.Syntax: IdentityConstraint :: Annotation -> String -> Maybe (Integer, Integer) -> RowConstraint
- Database.HsSqlPpp.Syntax: If :: (Annotation) -> (ScalarExprStatementListPairList) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: If :: Annotation -> ScalarExprStatementListPairList -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: ImplicitCast :: (Annotation) -> (ScalarExpr) -> (TypeExtra) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: ImplicitCast :: Annotation -> ScalarExpr -> TypeExtra -> ScalarExpr
- Database.HsSqlPpp.Syntax: InList :: (Annotation) -> (ScalarExprList) -> InList
+ Database.HsSqlPpp.Syntax: InList :: Annotation -> ScalarExprList -> InList
- Database.HsSqlPpp.Syntax: InPredicate :: (Annotation) -> (ScalarExpr) -> (Bool) -> (InList) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: InPredicate :: Annotation -> ScalarExpr -> Bool -> InList -> ScalarExpr
- Database.HsSqlPpp.Syntax: InQueryExpr :: (Annotation) -> (QueryExpr) -> InList
+ Database.HsSqlPpp.Syntax: InQueryExpr :: Annotation -> QueryExpr -> InList
- Database.HsSqlPpp.Syntax: Insert :: (Annotation) -> (Name) -> (([NameComponent])) -> (QueryExpr) -> (MaybeSelectList) -> Statement
+ Database.HsSqlPpp.Syntax: Insert :: Annotation -> Name -> [NameComponent] -> QueryExpr -> MaybeSelectList -> Statement
- Database.HsSqlPpp.Syntax: Interval :: (Annotation) -> (String) -> (IntervalField) -> ((Maybe Int)) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Interval :: Annotation -> String -> IntervalField -> Maybe Int -> ScalarExpr
- Database.HsSqlPpp.Syntax: Into :: (Annotation) -> (Bool) -> (([Name])) -> (Statement) -> Statement
+ Database.HsSqlPpp.Syntax: Into :: Annotation -> Bool -> [Name] -> Statement -> Statement
- Database.HsSqlPpp.Syntax: JoinOn :: (Annotation) -> (ScalarExpr) -> JoinExpr
+ Database.HsSqlPpp.Syntax: JoinOn :: Annotation -> ScalarExpr -> JoinExpr
- Database.HsSqlPpp.Syntax: JoinTref :: (Annotation) -> (TableRef) -> (Natural) -> (JoinType) -> ((Maybe JoinHint)) -> (TableRef) -> (OnExpr) -> TableRef
+ Database.HsSqlPpp.Syntax: JoinTref :: Annotation -> TableRef -> Natural -> JoinType -> Maybe JoinHint -> TableRef -> OnExpr -> TableRef
- Database.HsSqlPpp.Syntax: JoinUsing :: (Annotation) -> (([NameComponent])) -> JoinExpr
+ Database.HsSqlPpp.Syntax: JoinUsing :: Annotation -> [NameComponent] -> JoinExpr
- Database.HsSqlPpp.Syntax: LiftApp :: (Annotation) -> (Name) -> (LiftFlavour) -> (ScalarExprList) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: LiftApp :: Annotation -> Name -> LiftFlavour -> ScalarExprList -> ScalarExpr
- Database.HsSqlPpp.Syntax: LoopStatement :: (Annotation) -> ((Maybe String)) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: LoopStatement :: Annotation -> Maybe String -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: MultiSetClause :: (Annotation) -> (([NameComponent])) -> (ScalarExpr) -> SetClause
+ Database.HsSqlPpp.Syntax: MultiSetClause :: Annotation -> [NameComponent] -> ScalarExpr -> SetClause
- Database.HsSqlPpp.Syntax: Name :: (Annotation) -> (([NameComponent])) -> Name
+ Database.HsSqlPpp.Syntax: Name :: Annotation -> [NameComponent] -> Name
- Database.HsSqlPpp.Syntax: NotNullConstraint :: (Annotation) -> (String) -> RowConstraint
+ Database.HsSqlPpp.Syntax: NotNullConstraint :: Annotation -> String -> RowConstraint
- Database.HsSqlPpp.Syntax: Notify :: (Annotation) -> (String) -> Statement
+ Database.HsSqlPpp.Syntax: Notify :: Annotation -> String -> Statement
- Database.HsSqlPpp.Syntax: NullConstraint :: (Annotation) -> (String) -> RowConstraint
+ Database.HsSqlPpp.Syntax: NullConstraint :: Annotation -> String -> RowConstraint
- Database.HsSqlPpp.Syntax: NullLit :: (Annotation) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: NullLit :: Annotation -> ScalarExpr
- Database.HsSqlPpp.Syntax: NullStatement :: (Annotation) -> Statement
+ Database.HsSqlPpp.Syntax: NullStatement :: Annotation -> Statement
- Database.HsSqlPpp.Syntax: NumberLit :: (Annotation) -> (String) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: NumberLit :: Annotation -> String -> ScalarExpr
- Database.HsSqlPpp.Syntax: OdbcFunc :: (Annotation) -> (ScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: OdbcFunc :: Annotation -> ScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: OdbcLiteral :: (Annotation) -> (OdbcLiteralType) -> (String) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: OdbcLiteral :: Annotation -> OdbcLiteralType -> String -> ScalarExpr
- Database.HsSqlPpp.Syntax: OdbcTableRef :: (Annotation) -> (TableRef) -> TableRef
+ Database.HsSqlPpp.Syntax: OdbcTableRef :: Annotation -> TableRef -> TableRef
- Database.HsSqlPpp.Syntax: ParamAlias :: (Annotation) -> (NameComponent) -> (Integer) -> VarDef
+ Database.HsSqlPpp.Syntax: ParamAlias :: Annotation -> NameComponent -> Integer -> VarDef
- Database.HsSqlPpp.Syntax: ParamDef :: (Annotation) -> (NameComponent) -> (TypeName) -> ParamDef
+ Database.HsSqlPpp.Syntax: ParamDef :: Annotation -> NameComponent -> TypeName -> ParamDef
- Database.HsSqlPpp.Syntax: ParamDefTp :: (Annotation) -> (TypeName) -> ParamDef
+ Database.HsSqlPpp.Syntax: ParamDefTp :: Annotation -> TypeName -> ParamDef
- Database.HsSqlPpp.Syntax: Parens :: (Annotation) -> (ScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Parens :: Annotation -> ScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: Perform :: (Annotation) -> (ScalarExpr) -> Statement
+ Database.HsSqlPpp.Syntax: Perform :: Annotation -> ScalarExpr -> Statement
- Database.HsSqlPpp.Syntax: Placeholder :: (Annotation) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Placeholder :: Annotation -> ScalarExpr
- Database.HsSqlPpp.Syntax: PlpgsqlFnBody :: (Annotation) -> (Statement) -> FnBody
+ Database.HsSqlPpp.Syntax: PlpgsqlFnBody :: Annotation -> Statement -> FnBody
- Database.HsSqlPpp.Syntax: PositionalArg :: (Annotation) -> (Integer) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: PositionalArg :: Annotation -> Integer -> ScalarExpr
- Database.HsSqlPpp.Syntax: PostfixOp :: (Annotation) -> (Name) -> (ScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: PostfixOp :: Annotation -> Name -> ScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: Prec2TypeName :: (Annotation) -> (Name) -> (Integer) -> (Integer) -> TypeName
+ Database.HsSqlPpp.Syntax: Prec2TypeName :: Annotation -> Name -> Integer -> Integer -> TypeName
- Database.HsSqlPpp.Syntax: PrecTypeName :: (Annotation) -> (Name) -> (Integer) -> TypeName
+ Database.HsSqlPpp.Syntax: PrecTypeName :: Annotation -> Name -> Integer -> TypeName
- Database.HsSqlPpp.Syntax: PrefixOp :: (Annotation) -> (Name) -> (ScalarExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: PrefixOp :: Annotation -> Name -> ScalarExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: PrimaryKeyConstraint :: (Annotation) -> (String) -> (([NameComponent])) -> Constraint
+ Database.HsSqlPpp.Syntax: PrimaryKeyConstraint :: Annotation -> String -> [NameComponent] -> Constraint
- Database.HsSqlPpp.Syntax: QStar :: (Annotation) -> (NameComponent) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: QStar :: Annotation -> NameComponent -> ScalarExpr
- Database.HsSqlPpp.Syntax: QueryStatement :: (Annotation) -> (QueryExpr) -> Statement
+ Database.HsSqlPpp.Syntax: QueryStatement :: Annotation -> QueryExpr -> Statement
- Database.HsSqlPpp.Syntax: Raise :: (Annotation) -> (RaiseType) -> (String) -> (ScalarExprList) -> Statement
+ Database.HsSqlPpp.Syntax: Raise :: Annotation -> RaiseType -> String -> ScalarExprList -> Statement
- Database.HsSqlPpp.Syntax: ReferenceConstraint :: (Annotation) -> (String) -> (([NameComponent])) -> (Name) -> (([NameComponent])) -> (Cascade) -> (Cascade) -> Constraint
+ Database.HsSqlPpp.Syntax: ReferenceConstraint :: Annotation -> String -> [NameComponent] -> Name -> [NameComponent] -> Cascade -> Cascade -> Constraint
- Database.HsSqlPpp.Syntax: RenameColumn :: (Annotation) -> (NameComponent) -> (NameComponent) -> AlterTableOperation
+ Database.HsSqlPpp.Syntax: RenameColumn :: Annotation -> NameComponent -> NameComponent -> AlterTableOperation
- Database.HsSqlPpp.Syntax: RenameDatabase :: (Annotation) -> (Name) -> AlterDatabaseOperation
+ Database.HsSqlPpp.Syntax: RenameDatabase :: Annotation -> Name -> AlterDatabaseOperation
- Database.HsSqlPpp.Syntax: RenameTable :: (Annotation) -> (Name) -> AlterTableOperation
+ Database.HsSqlPpp.Syntax: RenameTable :: Annotation -> Name -> AlterTableOperation
- Database.HsSqlPpp.Syntax: Return :: (Annotation) -> (MaybeScalarExpr) -> Statement
+ Database.HsSqlPpp.Syntax: Return :: Annotation -> MaybeScalarExpr -> Statement
- Database.HsSqlPpp.Syntax: ReturnNext :: (Annotation) -> (ScalarExpr) -> Statement
+ Database.HsSqlPpp.Syntax: ReturnNext :: Annotation -> ScalarExpr -> Statement
- Database.HsSqlPpp.Syntax: ReturnQuery :: (Annotation) -> (QueryExpr) -> Statement
+ Database.HsSqlPpp.Syntax: ReturnQuery :: Annotation -> QueryExpr -> Statement
- Database.HsSqlPpp.Syntax: RowCheckConstraint :: (Annotation) -> (String) -> (ScalarExpr) -> RowConstraint
+ Database.HsSqlPpp.Syntax: RowCheckConstraint :: Annotation -> String -> ScalarExpr -> RowConstraint
- Database.HsSqlPpp.Syntax: RowPrimaryKeyConstraint :: (Annotation) -> (String) -> RowConstraint
+ Database.HsSqlPpp.Syntax: RowPrimaryKeyConstraint :: Annotation -> String -> RowConstraint
- Database.HsSqlPpp.Syntax: RowReferenceConstraint :: (Annotation) -> (String) -> (Name) -> ((Maybe NameComponent)) -> (Cascade) -> (Cascade) -> RowConstraint
+ Database.HsSqlPpp.Syntax: RowReferenceConstraint :: Annotation -> String -> Name -> Maybe NameComponent -> Cascade -> Cascade -> RowConstraint
- Database.HsSqlPpp.Syntax: RowUniqueConstraint :: (Annotation) -> (String) -> RowConstraint
+ Database.HsSqlPpp.Syntax: RowUniqueConstraint :: Annotation -> String -> RowConstraint
- Database.HsSqlPpp.Syntax: ScalarSubQuery :: (Annotation) -> (QueryExpr) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: ScalarSubQuery :: Annotation -> QueryExpr -> ScalarExpr
- Database.HsSqlPpp.Syntax: SelExp :: (Annotation) -> (ScalarExpr) -> SelectItem
+ Database.HsSqlPpp.Syntax: SelExp :: Annotation -> ScalarExpr -> SelectItem
- Database.HsSqlPpp.Syntax: Select :: (Annotation) -> (Distinct) -> (SelectList) -> (TableRefList) -> (MaybeBoolExpr) -> (ScalarExprList) -> (MaybeBoolExpr) -> (ScalarExprDirectionPairList) -> (MaybeScalarExpr) -> (MaybeScalarExpr) -> ([QueryHint]) -> QueryExpr
+ Database.HsSqlPpp.Syntax: Select :: Annotation -> Distinct -> SelectList -> TableRefList -> MaybeBoolExpr -> ScalarExprList -> MaybeBoolExpr -> ScalarExprDirectionPairList -> MaybeScalarExpr -> MaybeScalarExpr -> [QueryHint] -> QueryExpr
- Database.HsSqlPpp.Syntax: SelectItem :: (Annotation) -> (ScalarExpr) -> (NameComponent) -> SelectItem
+ Database.HsSqlPpp.Syntax: SelectItem :: Annotation -> ScalarExpr -> NameComponent -> SelectItem
- Database.HsSqlPpp.Syntax: SelectList :: (Annotation) -> (SelectItemList) -> SelectList
+ Database.HsSqlPpp.Syntax: SelectList :: Annotation -> SelectItemList -> SelectList
- Database.HsSqlPpp.Syntax: Set :: (Annotation) -> (String) -> (([SetValue])) -> Statement
+ Database.HsSqlPpp.Syntax: Set :: Annotation -> String -> [SetValue] -> Statement
- Database.HsSqlPpp.Syntax: SetClause :: (Annotation) -> (NameComponent) -> (ScalarExpr) -> SetClause
+ Database.HsSqlPpp.Syntax: SetClause :: Annotation -> NameComponent -> ScalarExpr -> SetClause
- Database.HsSqlPpp.Syntax: SetDataType :: (Annotation) -> (TypeName) -> AlterColumnAction
+ Database.HsSqlPpp.Syntax: SetDataType :: Annotation -> TypeName -> AlterColumnAction
- Database.HsSqlPpp.Syntax: SetDefault :: (Annotation) -> (ScalarExpr) -> AlterColumnAction
+ Database.HsSqlPpp.Syntax: SetDefault :: Annotation -> ScalarExpr -> AlterColumnAction
- Database.HsSqlPpp.Syntax: SetNotNull :: (Annotation) -> AlterColumnAction
+ Database.HsSqlPpp.Syntax: SetNotNull :: Annotation -> AlterColumnAction
- Database.HsSqlPpp.Syntax: SetOfTypeName :: (Annotation) -> (TypeName) -> TypeName
+ Database.HsSqlPpp.Syntax: SetOfTypeName :: Annotation -> TypeName -> TypeName
- Database.HsSqlPpp.Syntax: SimpleTypeName :: (Annotation) -> (Name) -> TypeName
+ Database.HsSqlPpp.Syntax: SimpleTypeName :: Annotation -> Name -> TypeName
- Database.HsSqlPpp.Syntax: SpecialOp :: (Annotation) -> (Name) -> (ScalarExprList) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: SpecialOp :: Annotation -> Name -> ScalarExprList -> ScalarExpr
- Database.HsSqlPpp.Syntax: SqlFnBody :: (Annotation) -> (StatementList) -> FnBody
+ Database.HsSqlPpp.Syntax: SqlFnBody :: Annotation -> StatementList -> FnBody
- Database.HsSqlPpp.Syntax: Star :: (Annotation) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: Star :: Annotation -> ScalarExpr
- Database.HsSqlPpp.Syntax: StringLit :: (Annotation) -> (String) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: StringLit :: Annotation -> String -> ScalarExpr
- Database.HsSqlPpp.Syntax: SubTref :: (Annotation) -> (QueryExpr) -> TableRef
+ Database.HsSqlPpp.Syntax: SubTref :: Annotation -> QueryExpr -> TableRef
- Database.HsSqlPpp.Syntax: TableAlias :: (Annotation) -> (NameComponent) -> (TableRef) -> TableRef
+ Database.HsSqlPpp.Syntax: TableAlias :: Annotation -> NameComponent -> TableRef -> TableRef
- Database.HsSqlPpp.Syntax: TablePartitionDef :: (Annotation) -> (NameComponent) -> (Integer) -> (TablePartitionDateTimeInterval) -> TablePartitionDef
+ Database.HsSqlPpp.Syntax: TablePartitionDef :: Annotation -> NameComponent -> Integer -> TablePartitionDateTimeInterval -> TablePartitionDef
- Database.HsSqlPpp.Syntax: TableRefParens :: (Annotation) -> (TableRef) -> TableRef
+ Database.HsSqlPpp.Syntax: TableRefParens :: Annotation -> TableRef -> TableRef
- Database.HsSqlPpp.Syntax: Tref :: (Annotation) -> (Name) -> TableRef
+ Database.HsSqlPpp.Syntax: Tref :: Annotation -> Name -> TableRef
- Database.HsSqlPpp.Syntax: Truncate :: (Annotation) -> (([Name])) -> (RestartIdentity) -> (Cascade) -> Statement
+ Database.HsSqlPpp.Syntax: Truncate :: Annotation -> [Name] -> RestartIdentity -> Cascade -> Statement
- Database.HsSqlPpp.Syntax: TypeAttDef :: (Annotation) -> (NameComponent) -> (TypeName) -> TypeAttributeDef
+ Database.HsSqlPpp.Syntax: TypeAttDef :: Annotation -> NameComponent -> TypeName -> TypeAttributeDef
- Database.HsSqlPpp.Syntax: TypedStringLit :: (Annotation) -> (TypeName) -> (String) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: TypedStringLit :: Annotation -> TypeName -> String -> ScalarExpr
- Database.HsSqlPpp.Syntax: UniqueConstraint :: (Annotation) -> (String) -> (([NameComponent])) -> Constraint
+ Database.HsSqlPpp.Syntax: UniqueConstraint :: Annotation -> String -> [NameComponent] -> Constraint
- Database.HsSqlPpp.Syntax: Update :: (Annotation) -> (Name) -> (SetClauseList) -> (TableRefList) -> (MaybeBoolExpr) -> (MaybeSelectList) -> Statement
+ Database.HsSqlPpp.Syntax: Update :: Annotation -> Name -> SetClauseList -> TableRefList -> MaybeBoolExpr -> MaybeSelectList -> Statement
- Database.HsSqlPpp.Syntax: Values :: (Annotation) -> (ScalarExprListList) -> QueryExpr
+ Database.HsSqlPpp.Syntax: Values :: Annotation -> ScalarExprListList -> QueryExpr
- Database.HsSqlPpp.Syntax: VarAlias :: (Annotation) -> (NameComponent) -> (Name) -> VarDef
+ Database.HsSqlPpp.Syntax: VarAlias :: Annotation -> NameComponent -> Name -> VarDef
- Database.HsSqlPpp.Syntax: VarDef :: (Annotation) -> (NameComponent) -> (TypeName) -> ((Maybe ScalarExpr)) -> VarDef
+ Database.HsSqlPpp.Syntax: VarDef :: Annotation -> NameComponent -> TypeName -> Maybe ScalarExpr -> VarDef
- Database.HsSqlPpp.Syntax: WhileStatement :: (Annotation) -> ((Maybe String)) -> (ScalarExpr) -> (StatementList) -> Statement
+ Database.HsSqlPpp.Syntax: WhileStatement :: Annotation -> Maybe String -> ScalarExpr -> StatementList -> Statement
- Database.HsSqlPpp.Syntax: WindowApp :: (Annotation) -> (ScalarExpr) -> (ScalarExprList) -> (ScalarExprDirectionPairList) -> ((Maybe FrameClause)) -> ScalarExpr
+ Database.HsSqlPpp.Syntax: WindowApp :: Annotation -> ScalarExpr -> ScalarExprList -> ScalarExprDirectionPairList -> Maybe FrameClause -> ScalarExpr
- Database.HsSqlPpp.Syntax: WithQuery :: (Annotation) -> (NameComponent) -> ((Maybe [NameComponent])) -> (QueryExpr) -> WithQuery
+ Database.HsSqlPpp.Syntax: WithQuery :: Annotation -> NameComponent -> Maybe [NameComponent] -> QueryExpr -> WithQuery
- Database.HsSqlPpp.Syntax: WithQueryExpr :: (Annotation) -> (WithQueryList) -> (QueryExpr) -> QueryExpr
+ Database.HsSqlPpp.Syntax: WithQueryExpr :: Annotation -> WithQueryList -> QueryExpr -> QueryExpr
- Database.HsSqlPpp.Syntax: [ann] :: QueryExpr -> (Annotation)
+ Database.HsSqlPpp.Syntax: [ann] :: QueryExpr -> Annotation
- Database.HsSqlPpp.Syntax: [cqQe0] :: QueryExpr -> (QueryExpr)
+ Database.HsSqlPpp.Syntax: [cqQe0] :: QueryExpr -> QueryExpr
- Database.HsSqlPpp.Syntax: [cqQe1] :: QueryExpr -> (QueryExpr)
+ Database.HsSqlPpp.Syntax: [cqQe1] :: QueryExpr -> QueryExpr
- Database.HsSqlPpp.Syntax: [cqType] :: QueryExpr -> (CombineType)
+ Database.HsSqlPpp.Syntax: [cqType] :: QueryExpr -> CombineType
- Database.HsSqlPpp.Syntax: [qeValues] :: QueryExpr -> (ScalarExprListList)
+ Database.HsSqlPpp.Syntax: [qeValues] :: QueryExpr -> ScalarExprListList
- Database.HsSqlPpp.Syntax: [selDistinct] :: QueryExpr -> (Distinct)
+ Database.HsSqlPpp.Syntax: [selDistinct] :: QueryExpr -> Distinct
- Database.HsSqlPpp.Syntax: [selGroupBy] :: QueryExpr -> (ScalarExprList)
+ Database.HsSqlPpp.Syntax: [selGroupBy] :: QueryExpr -> ScalarExprList
- Database.HsSqlPpp.Syntax: [selHaving] :: QueryExpr -> (MaybeBoolExpr)
+ Database.HsSqlPpp.Syntax: [selHaving] :: QueryExpr -> MaybeBoolExpr
- Database.HsSqlPpp.Syntax: [selLimit] :: QueryExpr -> (MaybeScalarExpr)
+ Database.HsSqlPpp.Syntax: [selLimit] :: QueryExpr -> MaybeScalarExpr
- Database.HsSqlPpp.Syntax: [selOffset] :: QueryExpr -> (MaybeScalarExpr)
+ Database.HsSqlPpp.Syntax: [selOffset] :: QueryExpr -> MaybeScalarExpr
- Database.HsSqlPpp.Syntax: [selOption] :: QueryExpr -> ([QueryHint])
+ Database.HsSqlPpp.Syntax: [selOption] :: QueryExpr -> [QueryHint]
- Database.HsSqlPpp.Syntax: [selOrderBy] :: QueryExpr -> (ScalarExprDirectionPairList)
+ Database.HsSqlPpp.Syntax: [selOrderBy] :: QueryExpr -> ScalarExprDirectionPairList
- Database.HsSqlPpp.Syntax: [selSelectList] :: QueryExpr -> (SelectList)
+ Database.HsSqlPpp.Syntax: [selSelectList] :: QueryExpr -> SelectList
- Database.HsSqlPpp.Syntax: [selTref] :: QueryExpr -> (TableRefList)
+ Database.HsSqlPpp.Syntax: [selTref] :: QueryExpr -> TableRefList
- Database.HsSqlPpp.Syntax: [selWhere] :: QueryExpr -> (MaybeBoolExpr)
+ Database.HsSqlPpp.Syntax: [selWhere] :: QueryExpr -> MaybeBoolExpr
- Database.HsSqlPpp.Syntax: [withQe] :: QueryExpr -> (QueryExpr)
+ Database.HsSqlPpp.Syntax: [withQe] :: QueryExpr -> QueryExpr
- Database.HsSqlPpp.Syntax: [withs] :: QueryExpr -> (WithQueryList)
+ Database.HsSqlPpp.Syntax: [withs] :: QueryExpr -> WithQueryList
- Database.HsSqlPpp.Types: Record :: (Maybe Type) -> PseudoType
+ Database.HsSqlPpp.Types: Record :: Maybe Type -> PseudoType

Files

hssqlppp.cabal view
@@ -1,5 +1,5 @@ Name:                hssqlppp-Version:             0.6.1+Version:             0.6.2 Synopsis:            SQL parser and type checker License:             BSD3 License-file:        LICENSE@@ -32,7 +32,7 @@  Library   Build-Depends:     base >= 4 && < 5,-                     containers >= 0.3.0.0 && < 0.6,+                     containers >= 0.3.0.0 && < 0.7,                      mtl >= 2.0.1.0 && < 2.3,                      parsec >= 3.1.2 && < 3.2,                      pretty >= 1.0 && < 1.2,@@ -40,7 +40,7 @@                      text >= 0.11.1.13 && < 1.3,                      uniplate >= 1.6 && < 1.7,                      transformers >= 0.3 && < 0.6,-                     pretty-show >= 1.6 && < 1.7+                     pretty-show >= 1.6 && < 1.10    hs-source-dirs:    src   Exposed-modules:   Database.HsSqlPpp.Annotation@@ -90,19 +90,19 @@     main-is:    Tests.lhs     hs-source-dirs:    src,tests     Build-Depends:     base >= 4 && < 5,-                       containers >= 0.3.0.0 && < 0.6,-                       haskell-src-exts >= 1.13 && < 1.20,+                       containers >= 0.3.0.0 && < 0.7,+                       haskell-src-exts >= 1.13 && < 1.22,                        mtl >= 2.1 && < 2.3,                        parsec >= 3.1 && < 3.2,                        pretty >= 1.0 && < 1.2,                        syb >= 0.1.0.2 && < 0.8,                        template-haskell,-                       tasty >= 0.10 && < 0.12,-                       tasty-hunit >= 0.9 && < 0.10,+                       tasty >= 0.10 && < 1.3,+                       tasty-hunit >= 0.9 && < 0.11,                        text >= 0.11.1.13 && < 1.3,                        uniplate >= 1.6 && < 1.7,                        transformers >= 0.3 && < 0.6,-                       pretty-show >= 1.6 && < 1.7+                       pretty-show >= 1.6 && < 1.10                       -- rough start:                      -- find src-extra/tests -iname '*hs' | sed -e "s@src-extra/tests/@@" | sed -e "s@/@.@g" |sed -e "s/.lhs//" |sed -e "s/.hs//"
src/Database/HsSqlPpp/Dialects/Ansi.lhs view
@@ -47,7 +47,7 @@ > ansiCatalog :: Catalog > ansiCatalog = >     (\l -> case l of->              Left x -> error $ show x+>              Left x -> error $ show x -- todo: what is the best way to handle this? >              Right e -> e) $ >      flip updateCatalog emptyCatalog ( >                                        -- todo: duplicated list of text types
src/Database/HsSqlPpp/Internals/AstInternal.hs view
@@ -1,29957 +1,30152 @@   {-# LANGUAGE TupleSections,ScopedTypeVariables,DeriveDataTypeable,OverloadedStrings #-}--- UUAGC 0.9.52.1 (hssqlppp/src/Database/HsSqlPpp/Internals/AstInterna)-module Database.HsSqlPpp.Internals.AstInternal(-    --from the ag files:-    --ast nodes-    Statement (..)-   ,QueryExpr (..)-   ,WithQueryList-   ,WithQuery(..)-   ,FnBody (..)-   ,SetClause (..)-   ,SetClauseList-   ,TableRef (..)-   ,JoinExpr (..)-   ,JoinType (..)-   ,JoinHint (..)-   ,SelectList (..)-   ,SelectItem (..)-   ,CopyFromSource (..)-   ,CopyToSource(..)-   ,CopyToOption(..)-   ,CopyFromOption(..)-   ,TablePartitionDef(..)-   ,TablePartitionDateTimeInterval(..)-   ,AttributeDef (..)-   ,RowConstraint (..)-   ,AlterDatabaseOperation(..)-   ,AlterTableOperation(..)-   ,AlterTableAction(..)-   ,AlterSequenceOperation(..)-   ,AlterSequenceAction(..)-   ,AlterColumnAction(..)-   ,AlterSchemaOperation(..)-   ,Constraint (..)-   ,TypeAttributeDef (..)-   ,ParamDef (..)-   ,VarDef (..)-   ,RaiseType (..)-   ,CombineType (..)-   ,Volatility (..)-   ,Language (..)-   ,TypeName (..)-   ,DropType (..)-   ,Cascade (..)-   ,Direction (..)-   ,Distinct (..)-   ,NullsOrder(..)-   ,Natural (..)-   ,IfExists (..)-   ,Replace(..)-   ,RestartIdentity (..)-   ,ScalarExpr (..)-   ,Name(..)-   ,nameComponents-   ,NameComponent(..)-   ,ncStr-   ,IntervalField(..)-   ,ExtractField(..)-   ,FrameClause(..)-   ,OdbcLiteralType(..)-   ,InList (..)-   ,LiftFlavour(..)-   ,TriggerWhen(..)-   ,TriggerEvent(..)-   ,TriggerFire(..)-   ,QueryHint(..)-   ,StatementList-   ,ScalarExprListStatementListTripleList-   ,ScalarExprListStatementListTriple-   ,ScalarExprList-   ,ParamDefList-   ,AttributeDefList-   ,ConstraintList-   ,TypeAttributeDefList-   ,TypeNameList-   ,NameTypeNameListPair-   ,NameTypeNameListPairList-   ,ScalarExprStatementListPairList-   --,SetClauseList-   ,CaseScalarExprListScalarExprPairList-   ,MaybeScalarExpr-   ,TableRefList-   ,ScalarExprListList-   ,SelectItemList-   ,OnExpr-   ,RowConstraintList-   ,VarDefList-   ,ScalarExprStatementListPair-   ,CaseScalarExprListScalarExprPair-   ,ScalarExprDirectionPair-   ,ScalarExprDirectionPairList-   ,MaybeBoolExpr-   ,MaybeSelectList-   ,SetValue(..)-   ,AlterTableActionList-   ,NameComponentList-   ,MaybeNameComponentList-   -- typechecking-   ,typeCheckStatements-   --,typeCheckParameterizedStatement-   ,typeCheckScalarExpr-   --,typeCheckScalarExprEnv-   ,typeCheckQueryExpr-   ,TypeCheckFlags(..)-   ,addExplicitCasts-   ,addImplicitCasts-   -- annotation-   ,Annotation(..)-   --,TypeExtra(..)-   ,SourcePosition-   ,ParameterizedStatementType-   ,getAnnotation-   ,updateAnnotation-   ,emptyAnnotation-   ,makeSelect-   --,canonicalizeTypeNames-) where----import Data.Maybe---import Data.Either---import Data.List---import Control.Applicative-import Data.Data---import Data.Char---import Control.Monad.State---import Control.Arrow--import Data.Generics-import Data.Generics.Uniplate.Data---import Debug.Trace---import Text.Show.Pretty-----import Database.HsSqlPpp.Internals.TypesInternal----import Database.HsSqlPpp.Internals.TypeChecking.TypeConversion---import Database.HsSqlPpp.Internals.TypeChecking.Environment hiding (JoinType(..))----import Database.HsSqlPpp.Internals.Catalog.CatalogInternal (NameComponent(..),ncStr)----import Database.HsSqlPpp.Utils.Utils---import Database.HsSqlPpp.Internals.Dialect---import Data.Text (Text)-import qualified Data.Text as T---import qualified Data.Text.Lazy as LT---- very bad, we use types in the syntax outside of the already exception--- in the annotation (which can be removed when the annotation type--- becomes a type parameters--- can replace the use of type extra with (typename,int,int) triple--- to fix this---import Database.HsSqlPpp.Internals.TypesInternal (TypeExtra)----{-# LINE 2 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}--import Data.Text (Text)-import qualified Database.HsSqlPpp.Internals.TypeChecking.Environment as E-import Database.HsSqlPpp.Internals.TypeChecking.Environment (Environment)-import Database.HsSqlPpp.Internals.TypesInternal-import Database.HsSqlPpp.Internals.Dialect-import Database.HsSqlPpp.Internals.Catalog.CatalogInternal-import Database.HsSqlPpp.Internals.Catalog.CatalogTypes-import Database.HsSqlPpp.Internals.Catalog.CatalogBuilder-import Database.HsSqlPpp.Internals.TypeChecking.TypeConversion.TypeConversion---- todo: find a better way to do this, this information should come--- via the dialect or catalog in the attributes-import Database.HsSqlPpp.Dialects.OdbcCatalog--import Control.Monad-import Data.List-import Data.Maybe-import Data.Char-import Text.Read-import Control.Applicative-{-# LINE 181 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 14 "hssqlppp/src/Database/HsSqlPpp/Internals/Annotation.ag" #-}--import qualified Database.HsSqlPpp.Internals.TypesInternal as T-import qualified Database.HsSqlPpp.Internals.Catalog.CatalogTypes as C--{-# LINE 188 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-{-# LINE 62 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}---- todo: replace the other nmcString function with this one--- which uses either instead of error-xnmcString :: NameComponent -> Either [TypeError] Text-xnmcString (QNmc n) = Right $ T.pack n-xnmcString (Nmc n) = Right $ T.pack $ map toLower n-xnmcString (AntiNameComponent _) = Left [InternalError "tried to get nmc string from antinamecomponent"]-{-# LINE 197 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 191 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}--splitTypeExtraList:: Maybe [TypeExtra] -> Maybe (TypeExtra,[TypeExtra])-splitTypeExtraList mte = mte >>= f-  where-    f [] = Nothing-    f (et:ets') = Just (et,ets')-{-# LINE 206 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 212 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}----- | thet name to choose for a column in a select list which doesn't--- have an explicit name - these are postgresql's rules-columnName :: ScalarExpr -> NameComponent-columnName (Identifier _ i) = last $ nameComponents i-columnName (App _ (Name _ ncs) _) = last ncs-columnName (Cast _ _ (SimpleTypeName _ (Name _ ncs))) = last ncs-columnName (ImplicitCast _ e _) = columnName e-columnName (WindowApp _ (App _ (Name _ ncs) _) _ _ _) = last ncs-columnName (AggregateApp _ _ (App _ (Name _ ncs) _) _) = last ncs-columnName _ = QNmc "?column?"-{-# LINE 221 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 160 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}--convertJoinType:: JoinType -> E.JoinType-convertJoinType LeftOuter = E.LeftOuter-convertJoinType RightOuter = E.RightOuter-convertJoinType FullOuter = E.FullOuter-convertJoinType _ = E.Inner-{-# LINE 230 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 82 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}--secondM :: Functor f => (t -> f a) -> (t1, t) -> f (t1, a)-secondM f (a,b) = (a,) <$> f b-{-# LINE 236 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}--needsImplicitCast:: Bool -> TypeExtra -> TypeExtra -> Bool-needsImplicitCast expectedCast upType expType-    = tePrecision upType /= tePrecision expType-      || teScale upType /= teScale expType-      || teNullable upType /= teNullable expType-          && nullabilityCast-      ||  teType upType /= teType expType-          && (not . null) (nub [teType upType, teType expType] \\ [ScalarType "varchar", ScalarType "text",ScalarType "nvarchar"])-  where-    nullabilityCast = expectedCast--- this function appeared because nullability does not always influence the type to cast to-implicitCastType:: Bool -> TypeExtra -> TypeExtra -> TypeExtra-implicitCastType expectedCast upType expType-    = expType{tePrecision = precision, teScale = scale, teNullable = nullability}-  where-    nullabilityCast = expectedCast-    nullabilitySource = if nullabilityCast then expType else upType-    precisionSource = expType-    nullability = teNullable nullabilitySource-    precision = tePrecision precisionSource-    scale = teScale precisionSource-{-# LINE 261 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 512 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}--getMaybeIntsFromLiterals :: [ScalarExpr] -> MatchAppLiteralList-getMaybeIntsFromLiterals sel = map extractor sel-  where-   extractor :: ScalarExpr -> Maybe Int-   extractor (NumberLit _ s) = readMaybe s :: Maybe Int-   extractor _ = Nothing-{-# LINE 271 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 795 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}--classifyInteger :: Dialect -> String -> Either [TypeError] Text-classifyInteger d s = maybe (Left []) Right $ case (readMaybe s :: Maybe Integer) of-                      -- assuming number literals are always positive-                      Just n | n < (2 ^ (31 :: Integer)) -> ansiTypeNameToDialect d "int"-                             | n < (2 ^ (63 :: Integer)) -> ansiTypeNameToDialect d "bigint"-                      _ -> ansiTypeNameToDialect d "numeric"-{-# LINE 281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 26 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}----- | some options when typechecking-data TypeCheckFlags =-    TypeCheckFlags-    { -- | add qualifiers to unqualified ids where possible-     tcfAddQualifiers :: Bool-     -- | add full aliases to every tableref and subselect-    ,tcfAddFullTablerefAliases :: Bool-     -- | add explicit aliases to all select items-    ,tcfAddSelectItemAliases :: Bool-     -- | expand stars in select lists to explicit list columns-    ,tcfExpandStars :: Bool-    ,tcfDialect :: Dialect}-    deriving (Show,Eq)---- | Typechecks the ast, and returns the updated catalog (which--- includes changes from any ddl statements in the ast).-typeCheckStatements :: TypeCheckFlags -> Catalog -> [Statement] -> (Catalog,[Statement])-typeCheckStatements f cat sts =-    let t = _sem_Root (Root sts)-        ta = _wrap_Root t Inh_Root {_cat_Inh_Root = cat-                                  ,_flags_Inh_Root = f-                                  {-,_lib_Inh_Root = emptyBindings-                                  ,_idenv_Inh_Root = emptyIDEnv "tcs"-}}-        tl = _annotatedTree_Syn_Root ta-        cat1 = cat --_producedCat_Syn_Root ta-    in case tl of-         Root r -> (cat1,fixTree (tcfDialect f) r)--- | Typecheck a query expr-typeCheckQueryExpr :: TypeCheckFlags -> Catalog -> QueryExpr -> QueryExpr-typeCheckQueryExpr f cat qe =-   let (_,[QueryStatement _ qe']) = typeCheckStatements f cat [QueryStatement emptyAnnotation qe]-   in qe'---- | Not working yet. Typechecks a statement possibly containing ?--- placeholders. These are annotated with the 'inferred type', and the--- stType annotation on the return value can be used to get this info--- easily. Returns Left if the statement is not a query,insert,update or delete--- statement-{-typeCheckParameterizedStatement :: TypeCheckFlags -> Catalog -> Statement -> Either String Statement-typeCheckParameterizedStatement f cat st =-    case st of-      QueryStatement _ _ -> tc-      Insert _ _ _ _ _ -> tc-      Update _ _ _ _ _ _ -> tc-      Delete _ _ _ _ _ -> tc-      _ -> Left "requires select, update, insert or delete statement"-    where-      tc = let tl = typeCheckStatements f cat [st]-           in case tl of-                (_,[st1]) -> Right st1-                _ -> error "impossible happened in typeCheckPS!"--}-{---- | type check a scalar expr-typeCheckScalarExpr :: TypeCheckFlags -> Catalog -> ScalarExpr -> ScalarExpr-typeCheckScalarExpr f cat ex =-    let t = _sem_ScalarExprRoot (ScalarExprRoot ex)-        rt = (_annotatedTree_Syn_ScalarExprRoot-              (_wrap_ScalarExprRoot t Inh_ScalarExprRoot {_cat_Inh_ScalarExprRoot = cat-                                                        ,_flags_Inh_ScalarExprRoot = f-                                                        ,_downEnv_Inh_ScalarExprRoot = E.emptyEnvironment-                                                        {-,_lib_Inh_ScalarExprRoot = emptyBindings-                                                        ,_idenv_Inh_ScalarExprRoot = emptyIDEnv "t-cse"-}}))-    in case rt of-         ScalarExprRoot e -> fixTree e -}--typeCheckScalarExpr ::  TypeCheckFlags -> Catalog -> Environment-                          -> ScalarExpr -> ScalarExpr-typeCheckScalarExpr f cat env ex =-    let t = _sem_ScalarExprRoot (ScalarExprRoot ex)-        rt = _annotatedTree_Syn_ScalarExprRoot-                $ _wrap_ScalarExprRoot t-                    Inh_ScalarExprRoot{_cat_Inh_ScalarExprRoot = cat-                                      ,_flags_Inh_ScalarExprRoot = f-                                      ,_downEnv_Inh_ScalarExprRoot = env}-    in case rt of-         ScalarExprRoot e -> fixTree (tcfDialect f) e--{-# LINE 365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 158 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}----- | run on a typechecked tree. Finds all the places where an implicit--- cast has been used in the typechecking and inserts an explicit cast-addExplicitCasts :: Data a => a -> a-addExplicitCasts = transformBi removeDoubleCasts . transformBi addCast-  where-    addCast :: ScalarExpr -> ScalarExpr-    addCast e = fromMaybe e $ do-                  t <- anImplicitCast (getAnnotation e)-                  n <- nameOfType $ teType t-                  return $ Cast emptyAnnotation e n-    -- addCast isn't very smart, so remove any unneeded casts-    -- that it has inserted. Only do this when have two-    -- nested casts which cast to the same type, so this-    -- shouldn't cause problems with sane sql-    removeDoubleCasts :: ScalarExpr -> ScalarExpr-    removeDoubleCasts e = case e of-      (Cast a (Cast _ e' t1) t)-         | resetAnnotations t1 == resetAnnotations t -> Cast a e' t-      e' -> e'-    resetAnnotations = transformBi (const emptyAnnotation)--- | variation of the above, which uses ImplicitCast ctor-addImplicitCasts :: Data a => Catalog -> a -> a-addImplicitCasts cat = transformBi removeDoubleCasts . transformBi addCast-  where-    addCast:: ScalarExpr -> ScalarExpr-    addCast e = fromMaybe e $ do-                  te <- anImplicitCast ann'-                  -- ImplicitCastToDo: why anImplicitCast is not Nothing above Star-                  _ <- nameOfType $ teType te -- in order to preserve the old logic-                  -- guard $ isCastable e $ teType te-                  guard $ anType ann' /= Just te-                  return $ ImplicitCast emptyAnnotation e te-      where-        _isCastable:: ScalarExpr -> Type -> Bool-        _isCastable e' to = fromMaybe False $ do-            from <- liftM teType $ anType $ getAnnotation e'-            either  (const $ if from == UnknownType then Just True else Nothing) Just-                    $ catCast cat ImplicitCastContext from to-        ann' = getAnnotation e-    removeDoubleCasts:: ScalarExpr -> ScalarExpr-    removeDoubleCasts e = fst $ accumulateCasts e-    -- For each implicit cast, if there is a sequence of implicit casts right under it,-    --    that remained after bottom-up application of the algorithm being described:-    --  1. Check if there is a type in the sequence (of argument types of implicit casts),-    --      which is implicitly castable to the target type of the current implicit cast,-    --      according to the current catalog.-    --  2. If there is such a type, replace a sequence of casts that starts at this type with-    --      a single cast, and shorten the list of casts to be further investigated (snd of-    --      output type of this function).-    --    2.1. Analyze the list bottom-up, so that the longest possible sequence of casts is-    --      replaced.-    --  3. If there is no such a type, just add the current cast to the list.-    -- Reset the list on a node other than ImplicitCast.-    accumulateCasts:: ScalarExpr -> (ScalarExpr,[(ScalarExpr,Type)])-    accumulateCasts e = case e of-        ImplicitCast a e' te-          ->  let (e1,ets) = accumulateCasts e'-                  eStart = ImplicitCast a e1 te-                  isCastable (_,t) = either (const False) id-                      $ catCast cat ImplicitCastContext t $ teType te-                  f z xs = case dropWhile (not . isCastable) xs of-                      [] -> z-                      xs'@((e'',_):rest) -> f (ImplicitCast a e'' te, xs') rest-              in case anType $ getAnnotation e1 of-                    Nothing -> (eStart,[]) -- cut here (should not happen in practice)-                    Just te1 -> f (eStart, (e1, teType te1):ets) ets-        _ -> (e,[])--nameOfType :: Type -> Maybe TypeName-nameOfType (ScalarType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])--- a hack to support precision cast from string literals-nameOfType UnknownType = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc "unknown"])-nameOfType (DomainType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])-nameOfType (EnumType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])-nameOfType (NamedCompositeType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])-nameOfType _ = Nothing---- hack for various fixups-fixTree :: Data a => Dialect -> a -> a-fixTree = fixMssqlDates--{----disgusting hack to fix up datediff,datepart, convert and other-functions which accept a fixed list of keywords for one or more of the-arguments for sql server: set the type for the first argument to type-in if it is in the acceptable list.--This is really bad. What happens is that the normal typechecker will-check the keyword as an identifier and (usually!) put in unknown-identifier error. Then, when the function is typechecked, it will-ignore the type for this argument. After we've finished, the type-error is replaced with int type here.--The proper fix:--I think a good way to look at these is to consider them fixed enums-which can only accept a literal (and not an enum valued-expression). We set a flag/enum thing in the typecheck environment of-the identifier, so that it can check the identifier fits one of the-valid functions in the identifier itself. Then, there doesn't need to-be a fix here, and typechecking the function should work without a-hack here too. The typechecking of the function itself still needs-some special casing (e.g. for the convert function in odbc (and-similar in regular sql server syntax), the result type depends on the-value of the 'enum'. This can be implemented in a similar way to the-literal ints being passed to the function type checker.--This will be fixed with the rewrite of the findcallmatch/matchapp/a-million different fns for precision and nullability/tcApplike mess.---}--fixMssqlDates :: Data a => Dialect -> a -> a-fixMssqlDates d = transformBi $ \x -> case x of-  App aa nm@(Name _ [Nmc fn]) [Identifier ai tn@(Name _ [Nmc tnn]),a,b]-    | map toLower fn `elem` ["datediff","dateadd"]-    , map toLower tnn `elem` dateparts ->-      App aa nm [Identifier (nai ai) tn,a,b]-  App aa nm@(Name _ [Nmc fn]) [Identifier ai tn@(Name _ [Nmc tnn]),a]-    | map toLower fn == "datepart"-    , map toLower tnn `elem` dateparts ->-      App aa nm [Identifier (nai ai) tn,a]-  App aa nm@(Name _ [Nmc fn]) [a,Identifier ai tn@(Name _ [Nmc tnn])]-    | map toLower fn == "convert"-    , map toLower tnn `elem` map fst odbcConvertTypes ->-      App aa nm [a,Identifier (nai ai) tn]-  App aa nm@(Name _ [Nmc fn]) (Identifier ai tn@(Name _ [Nmc tnn]):as)-    | map toLower fn `elem` ["timestampadd","timestampdiff"]-    , map toLower tnn `elem` odbcIntervalTypes ->-      App aa nm (Identifier (nai ai) tn:as)-  x' -> x'-  where-      dateparts :: [String]-      dateparts = ["day","dd","d","month","mm","m","year","yyyy"-                  ,"yy","quarter","qq","q","dayofyear","doy","dy","y"-                  ,"weekday","dw","week","ww","wk","hour","hh"-                  ,"minute","mi","n","second","ss","s","millisecond","ms"-                  ,"microsecond","mcs","nanosecond","ns"]-      -- todo: use canonical tsql name for typeInt-      nai ai = ai {anType = (mkTypeExtraNN . ScalarType) <$> ansiTypeNameToDialect d "int"-                  ,anErrs = []}----- temp utility function--{-canonicalizeType :: Dialect -> Type -> Type-canonicalizeType d (ScalarType t) = ScalarType $ canonicalizeTypeName d t-canonicalizeType _ t = t-}--{-# LINE 521 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 20 "hssqlppp/src/Database/HsSqlPpp/Internals/Annotation.ag" #-}---- | Represents a source file position, usually set by the parser.-type SourcePosition = (FilePath,Int,Int)---- | Statement type is used for getting type information for a--- parameterized statement. The first part is the args that the--- parameterized statement needs, and the second is the names and types--- of the output columns. No way to signal that a statement returns--- exactly one row at the moment-type ParameterizedStatementType = ([T.Type],[(String,T.Type)])--{-# LINE 535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 52 "hssqlppp/src/Database/HsSqlPpp/Internals/Annotation.ag" #-}-----some simple wrappers around uniplate for internal use. I'm not sure---which of these are actually used---- | An annotation value with no information.-emptyAnnotation :: Annotation-emptyAnnotation = Annotation Nothing Nothing [] Nothing []---- | get the annotation for the root element of the tree passed-getAnnotation :: Data a => a -> Annotation-getAnnotation = head . childrenBi----don't know how to do this one with uniplate---- | Update the first annotation in a tree using the function supplied-updateAnnotation :: Data a => (Annotation -> Annotation) -> a -> a-updateAnnotation f = gmapT (mkT f)--{-# LINE 557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--nameComponents :: Name -> [NameComponent]-nameComponents (Name _ is) = is--- todo: don't use error-nameComponents (AntiName _) = error "tried to get namecomponents of antiname"-{-# LINE 565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 538 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}----data LiftFlavour = LiftAny | LiftAll-                   deriving (Show,Eq,Typeable,Data)--data Direction = Asc | Desc-                 deriving (Show,Eq,Typeable,Data)--data NullsOrder = NullsDefault | NullsFirst | NullsLast-                 deriving (Show,Eq,Typeable,Data)--data Distinct = Distinct | All-                deriving (Show,Eq,Typeable,Data)---- maybe should improve this, since you can have at least union--- distinct and union all just like select distinct and select all--data CombineType = Except | Union | Intersect | UnionAll-                   deriving (Show,Eq,Typeable,Data)--data IntervalField = IntervalYear-                   | IntervalMonth-                   | IntervalDay-                   | IntervalHour-                   | IntervalMinute-                   | IntervalSecond-                   | IntervalYearToMonth-                   | IntervalDayToHour-                   | IntervalDayToMinute-                   | IntervalDayToSecond-                   | IntervalHourToMinute-                   | IntervalHourToSecond-                   | IntervalMinuteToSecond-                     deriving (Show,Eq,Typeable,Data)--data ExtractField = ExtractCentury-                  | ExtractDay-                  | ExtractDecade-                  | ExtractDow-                  | ExtractDoy-                  | ExtractEpoch-                  | ExtractHour-                  | ExtractIsodow-                  | ExtractIsoyear-                  | ExtractMicroseconds-                  | ExtractMillennium-                  | ExtractMilliseconds-                  | ExtractMinute-                  | ExtractMonth-                  | ExtractQuarter-                  | ExtractSecond-                  | ExtractTimezone-                  | ExtractTimezoneHour-                  | ExtractTimezoneMinute-                  | ExtractWeek-                  | ExtractYear-                    deriving (Show,Eq,Typeable,Data)---- todo: this needs fixing, it is currently based on limited frame options-data FrameClause = FrameUnboundedPreceding-                 | FrameUnboundedFull-                 | FrameRowsUnboundedPreceding-                   deriving (Show,Eq,Typeable,Data)---data OdbcLiteralType = OLDate-                     | OLTime-                     | OLTimestamp-                       deriving (Show,Eq,Typeable,Data)-{-# LINE 638 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 692 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--data JoinType = Inner | LeftOuter| RightOuter | FullOuter | Cross-                deriving (Show,Eq,Typeable,Data)-data JoinHint = Loop | Hash | Merge-                deriving (Show,Eq,Typeable,Data)-data Natural = Natural | Unnatural-               deriving (Show,Eq,Typeable,Data)-{-# LINE 648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 710 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}---- | 'default' valued select, use for creating select values------ > makeSelect :: QueryExpr--- > makeSelect = Select--- >              {ann = emptyAnnotation--- >              ,selDistinct = All--- >              ,selSelectList = (SelectList emptyAnnotation [])--- >              ,selTref = []--- >              ,selWhere = Nothing--- >              ,selGroupBy = []--- >              ,selHaving = Nothing--- >              ,selOrderBy = []--- >              ,selLimit = Nothing--- >              ,selOffset = Nothing--- >              ,selOption = []}------ On its own, it isn't valid syntax: to use it you have to replace--- the select list at minimum------ use something like this------ > s = makeSelect {selSelectList = sl [se $ i "a"]--- >                ,selTref = [tref "t"]}--- >     where--- >         a = emptyAnnotation--- >         sl = SelectList a--- >         se = SelExp a--- >         i = Identifier a--- >         tref t = Tref a (Name a [Nmc t])--makeSelect :: QueryExpr-makeSelect = Select-             {ann = emptyAnnotation-             ,selDistinct = All-             ,selSelectList = (SelectList emptyAnnotation [])-             ,selTref = []-             ,selWhere = Nothing-             ,selGroupBy = []-             ,selHaving = Nothing-             ,selOrderBy = []-             ,selLimit = Nothing-             ,selOffset = Nothing-             ,selOption = []}-{-# LINE 695 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 1019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--data CopyFromSource = CopyFilename String-                    | Stdin-                      deriving (Show,Eq,Typeable,Data)-data CopyToSource = CopyTable Name [NameComponent]-                  | CopyQuery QueryExpr-                    deriving (Show,Eq,Typeable,Data)--data CopyFromOption = CopyFromFormat String-                    | CopyFromDelimiter String-                    | CopyFromErrorLog String-                    | CopyFromErrorVerbosity Int-                    | CopyFromParsers String-                    | CopyFromDirectory-                    | CopyFromOffset Integer-                    | CopyFromLimit Integer-                    | CopyFromErrorThreshold Int-                    | CopyFromNewlineFormat String-                  deriving (Show,Eq,Typeable,Data)--data CopyToOption = CopyToFormat String-                  | CopyToDelimiter String-                  | CopyToErrorLog String-                  | CopyToErrorVerbosity Int-                  deriving (Show,Eq,Typeable,Data)--{-# LINE 724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 1110 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--data TablePartitionDateTimeInterval = Year | Month | Day | Hour | Minute | Second | Millisecond-                                 deriving (Show,Eq,Typeable,Data)-{-# LINE 730 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 1173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--data SetValue-    = SetStr Annotation String-    | SetId Annotation String-    | SetNum Annotation Double-      deriving (Show,Eq,Typeable,Data)---data TriggerWhen = TriggerBefore | TriggerAfter-                   deriving (Show,Eq,Typeable,Data)-data TriggerEvent = TInsert| TUpdate | TDelete | AntiTriggerEvent String-                    deriving (Show,Eq,Typeable,Data)-data TriggerFire = EachRow | EachStatement-                   deriving (Show,Eq,Typeable,Data)--data DropType = Table-              | Domain-              | View-              | Type-              | Database-              | User-              | Login-              | Schema-                deriving (Show,Eq,Typeable,Data)--data Cascade = Cascade | Restrict-               deriving (Show,Eq,Typeable,Data)----data IfExists = Require | IfExists-                deriving (Show,Eq,Typeable,Data)---data RestartIdentity = RestartIdentity | ContinueIdentity-                       deriving (Show,Eq,Typeable,Data)--{-# LINE 770 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 1216 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--data Replace = Replace | NoReplace-               deriving (Show,Eq,Typeable,Data)--data Volatility = Volatile | Stable | Immutable-                  deriving (Show,Eq,Typeable,Data)---- todo: fix the fn body to support to support other languages--- just as as string for now--- probably change Language to be a string also--data Language = Sql | Plpgsql-                deriving (Show,Eq,Typeable,Data)-{-# LINE 786 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 1255 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--data RaiseType = RNotice | RException | RError-                 deriving (Show,Eq,Typeable,Data)--{-# LINE 793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 1269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}--data QueryHint = QueryHintPartitionGroup | QueryHintColumnarHostGroup-                 deriving (Show,Eq,Typeable,Data)--{-# LINE 800 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--{-# LINE 1375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}---- TODO: move this somewhere better--- | run canonicalizeTypeName on all the TypeName nodes in an ast-{-canonicalizeTypeNames :: Data a => Dialect -> a -> a-canonicalizeTypeNames d =-   (transformBi $ \x ->-       case x of-         ScalarType s -> ScalarType $ canonicalizeTypeName d s-         x' -> x')-   . (transformBi $ \x ->-       case x of-         SimpleTypeName a tn -> SimpleTypeName a (c tn)-         PrecTypeName a tn i -> PrecTypeName a (c tn) i-         Prec2TypeName a tn i i1 -> Prec2TypeName a (c tn) i i1-         x' -> x')-   where-     c (Name a [Nmc nc]) = Name a [Nmc $ T.unpack $ canonicalizeTypeName d $ T.pack nc]-     c z = z-}--{-# LINE 822 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}--- AlterColumnAction --------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterColumnAction -         originalTree         : AlterColumnAction -   alternatives:-      alternative SetDataType:-         child ann            : Annotation -         child typ            : TypeName -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative SetNotNull:-         child ann            : Annotation -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative DropNotNull:-         child ann            : Annotation -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative SetDefault:-         child ann            : Annotation -         child def            : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative DropDefault:-         child ann            : Annotation -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AlterColumnAction = SetDataType (Annotation) (TypeName)-                       | SetNotNull (Annotation)-                       | DropNotNull (Annotation)-                       | SetDefault (Annotation) (ScalarExpr)-                       | DropDefault (Annotation)-                       deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AlterColumnAction :: AlterColumnAction ->-                         T_AlterColumnAction-_sem_AlterColumnAction (SetDataType _ann _typ) =-    (_sem_AlterColumnAction_SetDataType (_sem_Annotation _ann) (_sem_TypeName _typ))-_sem_AlterColumnAction (SetNotNull _ann) =-    (_sem_AlterColumnAction_SetNotNull (_sem_Annotation _ann))-_sem_AlterColumnAction (DropNotNull _ann) =-    (_sem_AlterColumnAction_DropNotNull (_sem_Annotation _ann))-_sem_AlterColumnAction (SetDefault _ann _def) =-    (_sem_AlterColumnAction_SetDefault (_sem_Annotation _ann) (_sem_ScalarExpr _def))-_sem_AlterColumnAction (DropDefault _ann) =-    (_sem_AlterColumnAction_DropDefault (_sem_Annotation _ann))--- semantic domain-type T_AlterColumnAction = Catalog ->-                           TypeCheckFlags ->-                           (Maybe TypeExtra) ->-                           ( AlterColumnAction,AlterColumnAction)-data Inh_AlterColumnAction = Inh_AlterColumnAction {_cat_Inh_AlterColumnAction :: Catalog,_flags_Inh_AlterColumnAction :: TypeCheckFlags,_imCast_Inh_AlterColumnAction :: (Maybe TypeExtra)}-data Syn_AlterColumnAction = Syn_AlterColumnAction {_annotatedTree_Syn_AlterColumnAction :: AlterColumnAction,_originalTree_Syn_AlterColumnAction :: AlterColumnAction}-_wrap_AlterColumnAction :: T_AlterColumnAction ->-                          Inh_AlterColumnAction ->-                          Syn_AlterColumnAction-_wrap_AlterColumnAction sem (Inh_AlterColumnAction _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterColumnAction _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterColumnAction_SetDataType :: T_Annotation ->-                                     T_TypeName ->-                                     T_AlterColumnAction-_sem_AlterColumnAction_SetDataType ann_ typ_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterColumnAction-              _lhsOoriginalTree :: AlterColumnAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 24, column 37)-              _annOtpe =-                  ({-# LINE 24 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 919 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetDataType _annIannotatedTree _typIannotatedTree-                   {-# LINE 925 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetDataType _annIoriginalTree _typIoriginalTree-                   {-# LINE 931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 943 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 949 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 955 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 961 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 967 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 973 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 979 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterColumnAction_SetNotNull :: T_Annotation ->-                                    T_AlterColumnAction-_sem_AlterColumnAction_SetNotNull ann_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterColumnAction-              _lhsOoriginalTree :: AlterColumnAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 29, column 36)-              _annOtpe =-                  ({-# LINE 29 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetNotNull _annIannotatedTree-                   {-# LINE 1010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetNotNull _annIoriginalTree-                   {-# LINE 1016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterColumnAction_DropNotNull :: T_Annotation ->-                                     T_AlterColumnAction-_sem_AlterColumnAction_DropNotNull ann_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterColumnAction-              _lhsOoriginalTree :: AlterColumnAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 23, column 37)-              _annOtpe =-                  ({-# LINE 23 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropNotNull _annIannotatedTree-                   {-# LINE 1075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropNotNull _annIoriginalTree-                   {-# LINE 1081 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1087 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1093 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1099 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterColumnAction_SetDefault :: T_Annotation ->-                                    T_ScalarExpr ->-                                    T_AlterColumnAction-_sem_AlterColumnAction_SetDefault ann_ def_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _defOdownEnv :: Environment-              _defOexpectedCast :: Bool-              _defOexpectedType :: (Maybe TypeExtra)-              _defOodbcFunction :: Bool-              _defOassignmentCastContext :: Bool-              _lhsOannotatedTree :: AlterColumnAction-              _lhsOoriginalTree :: AlterColumnAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _defOcat :: Catalog-              _defOflags :: TypeCheckFlags-              _defOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _defIannotatedTree :: ScalarExpr-              _defIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _defIoriginalTree :: ScalarExpr-              _defIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 25, column 36)-              _annOtpe =-                  ({-# LINE 25 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 26, column 36)-              _defOdownEnv =-                  ({-# LINE 26 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 1153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 27, column 36)-              _defOexpectedCast =-                  ({-# LINE 27 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 1159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 28, column 36)-              _defOexpectedType =-                  ({-# LINE 28 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 1165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 131, column 18)-              _defOodbcFunction =-                  ({-# LINE 131 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 1171 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 806, column 36)-              _defOassignmentCastContext =-                  ({-# LINE 806 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 1177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetDefault _annIannotatedTree _defIannotatedTree-                   {-# LINE 1183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetDefault _annIoriginalTree _defIoriginalTree-                   {-# LINE 1189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1195 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1201 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1207 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1213 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1219 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _defOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1225 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _defOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _defOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _defIannotatedTree,_defIcolExprs,_defIoriginalTree,_defIupType) =-                  def_ _defOassignmentCastContext _defOcat _defOdownEnv _defOexpectedCast _defOexpectedType _defOflags _defOimCast _defOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterColumnAction_DropDefault :: T_Annotation ->-                                     T_AlterColumnAction-_sem_AlterColumnAction_DropDefault ann_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterColumnAction-              _lhsOoriginalTree :: AlterColumnAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 22, column 37)-              _annOtpe =-                  ({-# LINE 22 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1262 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropDefault _annIannotatedTree-                   {-# LINE 1268 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropDefault _annIoriginalTree-                   {-# LINE 1274 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1280 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1286 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1292 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1298 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1304 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterDatabaseOperation ---------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterDatabaseOperation -         originalTree         : AlterDatabaseOperation -   alternatives:-      alternative RenameDatabase:-         child ann            : Annotation -         child newName        : Name -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AlterDatabaseOperation = RenameDatabase (Annotation) (Name)-                            deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AlterDatabaseOperation :: AlterDatabaseOperation ->-                              T_AlterDatabaseOperation-_sem_AlterDatabaseOperation (RenameDatabase _ann _newName) =-    (_sem_AlterDatabaseOperation_RenameDatabase (_sem_Annotation _ann) (_sem_Name _newName))--- semantic domain-type T_AlterDatabaseOperation = Catalog ->-                                TypeCheckFlags ->-                                (Maybe TypeExtra) ->-                                ( AlterDatabaseOperation,AlterDatabaseOperation)-data Inh_AlterDatabaseOperation = Inh_AlterDatabaseOperation {_cat_Inh_AlterDatabaseOperation :: Catalog,_flags_Inh_AlterDatabaseOperation :: TypeCheckFlags,_imCast_Inh_AlterDatabaseOperation :: (Maybe TypeExtra)}-data Syn_AlterDatabaseOperation = Syn_AlterDatabaseOperation {_annotatedTree_Syn_AlterDatabaseOperation :: AlterDatabaseOperation,_originalTree_Syn_AlterDatabaseOperation :: AlterDatabaseOperation}-_wrap_AlterDatabaseOperation :: T_AlterDatabaseOperation ->-                               Inh_AlterDatabaseOperation ->-                               Syn_AlterDatabaseOperation-_wrap_AlterDatabaseOperation sem (Inh_AlterDatabaseOperation _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterDatabaseOperation _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterDatabaseOperation_RenameDatabase :: T_Annotation ->-                                             T_Name ->-                                             T_AlterDatabaseOperation-_sem_AlterDatabaseOperation_RenameDatabase ann_ newName_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _newNameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterDatabaseOperation-              _lhsOoriginalTree :: AlterDatabaseOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _newNameOcat :: Catalog-              _newNameOflags :: TypeCheckFlags-              _newNameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _newNameIannotatedTree :: Name-              _newNameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 30, column 45)-              _annOtpe =-                  ({-# LINE 30 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 31, column 45)-              _newNameOtpe =-                  ({-# LINE 31 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RenameDatabase _annIannotatedTree _newNameIannotatedTree-                   {-# LINE 1384 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RenameDatabase _annIoriginalTree _newNameIoriginalTree-                   {-# LINE 1390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1396 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1402 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1408 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1414 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1420 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1426 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1432 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1438 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _newNameIannotatedTree,_newNameIoriginalTree) =-                  newName_ _newNameOcat _newNameOflags _newNameOimCast _newNameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterSchemaOperation -----------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterSchemaOperation -         originalTree         : AlterSchemaOperation -   alternatives:-      alternative AlterSchemaName:-         child ann            : Annotation -         child newName        : {NameComponent}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSchemaOwner:-         child ann            : Annotation -         child newName        : Name -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AlterSchemaOperation = AlterSchemaName (Annotation) (NameComponent)-                          | AlterSchemaOwner (Annotation) (Name)-                          deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AlterSchemaOperation :: AlterSchemaOperation ->-                            T_AlterSchemaOperation-_sem_AlterSchemaOperation (AlterSchemaName _ann _newName) =-    (_sem_AlterSchemaOperation_AlterSchemaName (_sem_Annotation _ann) _newName)-_sem_AlterSchemaOperation (AlterSchemaOwner _ann _newName) =-    (_sem_AlterSchemaOperation_AlterSchemaOwner (_sem_Annotation _ann) (_sem_Name _newName))--- semantic domain-type T_AlterSchemaOperation = Catalog ->-                              TypeCheckFlags ->-                              (Maybe TypeExtra) ->-                              ( AlterSchemaOperation,AlterSchemaOperation)-data Inh_AlterSchemaOperation = Inh_AlterSchemaOperation {_cat_Inh_AlterSchemaOperation :: Catalog,_flags_Inh_AlterSchemaOperation :: TypeCheckFlags,_imCast_Inh_AlterSchemaOperation :: (Maybe TypeExtra)}-data Syn_AlterSchemaOperation = Syn_AlterSchemaOperation {_annotatedTree_Syn_AlterSchemaOperation :: AlterSchemaOperation,_originalTree_Syn_AlterSchemaOperation :: AlterSchemaOperation}-_wrap_AlterSchemaOperation :: T_AlterSchemaOperation ->-                             Inh_AlterSchemaOperation ->-                             Syn_AlterSchemaOperation-_wrap_AlterSchemaOperation sem (Inh_AlterSchemaOperation _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterSchemaOperation _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterSchemaOperation_AlterSchemaName :: T_Annotation ->-                                            NameComponent ->-                                            T_AlterSchemaOperation-_sem_AlterSchemaOperation_AlterSchemaName ann_ newName_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSchemaOperation-              _lhsOoriginalTree :: AlterSchemaOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 32, column 44)-              _annOtpe =-                  ({-# LINE 32 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSchemaName _annIannotatedTree newName_-                   {-# LINE 1517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSchemaName _annIoriginalTree newName_-                   {-# LINE 1523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSchemaOperation_AlterSchemaOwner :: T_Annotation ->-                                             T_Name ->-                                             T_AlterSchemaOperation-_sem_AlterSchemaOperation_AlterSchemaOwner ann_ newName_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _newNameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSchemaOperation-              _lhsOoriginalTree :: AlterSchemaOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _newNameOcat :: Catalog-              _newNameOflags :: TypeCheckFlags-              _newNameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _newNameIannotatedTree :: Name-              _newNameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 33, column 45)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 34, column 45)-              _newNameOtpe =-                  ({-# LINE 34 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSchemaOwner _annIannotatedTree _newNameIannotatedTree-                   {-# LINE 1595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSchemaOwner _annIoriginalTree _newNameIoriginalTree-                   {-# LINE 1601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1607 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _newNameIannotatedTree,_newNameIoriginalTree) =-                  newName_ _newNameOcat _newNameOflags _newNameOimCast _newNameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterSequenceAction ------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterSequenceAction -         originalTree         : AlterSequenceAction -   alternatives:-      alternative AlterSequenceIncrement:-         child ann            : Annotation -         child incr           : {Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequenceMin:-         child ann            : Annotation -         child min            : {Maybe Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequenceMax:-         child ann            : Annotation -         child max            : {Maybe Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequenceStart:-         child ann            : Annotation -         child start          : {Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequenceRestart:-         child ann            : Annotation -         child restart        : {Maybe Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequenceCache:-         child ann            : Annotation -         child cache          : {Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AlterSequenceAction = AlterSequenceIncrement (Annotation) (Integer)-                         | AlterSequenceMin (Annotation) ((Maybe Integer))-                         | AlterSequenceMax (Annotation) ((Maybe Integer))-                         | AlterSequenceStart (Annotation) (Integer)-                         | AlterSequenceRestart (Annotation) ((Maybe Integer))-                         | AlterSequenceCache (Annotation) (Integer)-                         deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AlterSequenceAction :: AlterSequenceAction ->-                           T_AlterSequenceAction-_sem_AlterSequenceAction (AlterSequenceIncrement _ann _incr) =-    (_sem_AlterSequenceAction_AlterSequenceIncrement (_sem_Annotation _ann) _incr)-_sem_AlterSequenceAction (AlterSequenceMin _ann _min) =-    (_sem_AlterSequenceAction_AlterSequenceMin (_sem_Annotation _ann) _min)-_sem_AlterSequenceAction (AlterSequenceMax _ann _max) =-    (_sem_AlterSequenceAction_AlterSequenceMax (_sem_Annotation _ann) _max)-_sem_AlterSequenceAction (AlterSequenceStart _ann _start) =-    (_sem_AlterSequenceAction_AlterSequenceStart (_sem_Annotation _ann) _start)-_sem_AlterSequenceAction (AlterSequenceRestart _ann _restart) =-    (_sem_AlterSequenceAction_AlterSequenceRestart (_sem_Annotation _ann) _restart)-_sem_AlterSequenceAction (AlterSequenceCache _ann _cache) =-    (_sem_AlterSequenceAction_AlterSequenceCache (_sem_Annotation _ann) _cache)--- semantic domain-type T_AlterSequenceAction = Catalog ->-                             TypeCheckFlags ->-                             (Maybe TypeExtra) ->-                             ( AlterSequenceAction,AlterSequenceAction)-data Inh_AlterSequenceAction = Inh_AlterSequenceAction {_cat_Inh_AlterSequenceAction :: Catalog,_flags_Inh_AlterSequenceAction :: TypeCheckFlags,_imCast_Inh_AlterSequenceAction :: (Maybe TypeExtra)}-data Syn_AlterSequenceAction = Syn_AlterSequenceAction {_annotatedTree_Syn_AlterSequenceAction :: AlterSequenceAction,_originalTree_Syn_AlterSequenceAction :: AlterSequenceAction}-_wrap_AlterSequenceAction :: T_AlterSequenceAction ->-                            Inh_AlterSequenceAction ->-                            Syn_AlterSequenceAction-_wrap_AlterSequenceAction sem (Inh_AlterSequenceAction _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterSequenceAction _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterSequenceAction_AlterSequenceIncrement :: T_Annotation ->-                                                  Integer ->-                                                  T_AlterSequenceAction-_sem_AlterSequenceAction_AlterSequenceIncrement ann_ incr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceAction-              _lhsOoriginalTree :: AlterSequenceAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 35, column 50)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1758 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceIncrement _annIannotatedTree incr_-                   {-# LINE 1764 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceIncrement _annIoriginalTree incr_-                   {-# LINE 1770 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1776 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1782 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1788 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1794 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1800 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceAction_AlterSequenceMin :: T_Annotation ->-                                            (Maybe Integer) ->-                                            T_AlterSequenceAction-_sem_AlterSequenceAction_AlterSequenceMin ann_ min_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceAction-              _lhsOoriginalTree :: AlterSequenceAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 36, column 44)-              _annOtpe =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1824 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceMin _annIannotatedTree min_-                   {-# LINE 1830 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceMin _annIoriginalTree min_-                   {-# LINE 1836 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1842 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1848 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1854 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1860 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1866 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceAction_AlterSequenceMax :: T_Annotation ->-                                            (Maybe Integer) ->-                                            T_AlterSequenceAction-_sem_AlterSequenceAction_AlterSequenceMax ann_ max_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceAction-              _lhsOoriginalTree :: AlterSequenceAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 37, column 44)-              _annOtpe =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1890 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceMax _annIannotatedTree max_-                   {-# LINE 1896 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceMax _annIoriginalTree max_-                   {-# LINE 1902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1908 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1914 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1920 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1926 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1932 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceAction_AlterSequenceStart :: T_Annotation ->-                                              Integer ->-                                              T_AlterSequenceAction-_sem_AlterSequenceAction_AlterSequenceStart ann_ start_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceAction-              _lhsOoriginalTree :: AlterSequenceAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 38, column 46)-              _annOtpe =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 1956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceStart _annIannotatedTree start_-                   {-# LINE 1962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceStart _annIoriginalTree start_-                   {-# LINE 1968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 1974 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 1980 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 1986 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 1992 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 1998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceAction_AlterSequenceRestart :: T_Annotation ->-                                                (Maybe Integer) ->-                                                T_AlterSequenceAction-_sem_AlterSequenceAction_AlterSequenceRestart ann_ restart_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceAction-              _lhsOoriginalTree :: AlterSequenceAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 39, column 48)-              _annOtpe =-                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceRestart _annIannotatedTree restart_-                   {-# LINE 2028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceRestart _annIoriginalTree restart_-                   {-# LINE 2034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceAction_AlterSequenceCache :: T_Annotation ->-                                              Integer ->-                                              T_AlterSequenceAction-_sem_AlterSequenceAction_AlterSequenceCache ann_ cache_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceAction-              _lhsOoriginalTree :: AlterSequenceAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 40, column 46)-              _annOtpe =-                  ({-# LINE 40 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2088 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceCache _annIannotatedTree cache_-                   {-# LINE 2094 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceCache _annIoriginalTree cache_-                   {-# LINE 2100 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2106 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2112 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2118 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2124 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2130 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterSequenceActionList --------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterSequenceActionList -         originalTree         : AlterSequenceActionList -   alternatives:-      alternative Cons:-         child hd             : AlterSequenceAction -         child tl             : AlterSequenceActionList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type AlterSequenceActionList = [AlterSequenceAction]--- cata-_sem_AlterSequenceActionList :: AlterSequenceActionList ->-                               T_AlterSequenceActionList-_sem_AlterSequenceActionList list =-    (Prelude.foldr _sem_AlterSequenceActionList_Cons _sem_AlterSequenceActionList_Nil (Prelude.map _sem_AlterSequenceAction list))--- semantic domain-type T_AlterSequenceActionList = Catalog ->-                                 TypeCheckFlags ->-                                 (Maybe TypeExtra) ->-                                 ( AlterSequenceActionList,AlterSequenceActionList)-data Inh_AlterSequenceActionList = Inh_AlterSequenceActionList {_cat_Inh_AlterSequenceActionList :: Catalog,_flags_Inh_AlterSequenceActionList :: TypeCheckFlags,_imCast_Inh_AlterSequenceActionList :: (Maybe TypeExtra)}-data Syn_AlterSequenceActionList = Syn_AlterSequenceActionList {_annotatedTree_Syn_AlterSequenceActionList :: AlterSequenceActionList,_originalTree_Syn_AlterSequenceActionList :: AlterSequenceActionList}-_wrap_AlterSequenceActionList :: T_AlterSequenceActionList ->-                                Inh_AlterSequenceActionList ->-                                Syn_AlterSequenceActionList-_wrap_AlterSequenceActionList sem (Inh_AlterSequenceActionList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterSequenceActionList _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterSequenceActionList_Cons :: T_AlterSequenceAction ->-                                    T_AlterSequenceActionList ->-                                    T_AlterSequenceActionList-_sem_AlterSequenceActionList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: AlterSequenceActionList-              _lhsOoriginalTree :: AlterSequenceActionList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: AlterSequenceAction-              _hdIoriginalTree :: AlterSequenceAction-              _tlIannotatedTree :: AlterSequenceActionList-              _tlIoriginalTree :: AlterSequenceActionList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 2199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 2205 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2211 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2223 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2229 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2235 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2241 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2247 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2253 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceActionList_Nil :: T_AlterSequenceActionList-_sem_AlterSequenceActionList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: AlterSequenceActionList-              _lhsOoriginalTree :: AlterSequenceActionList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 2271 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 2277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterSequenceOperation ---------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterSequenceOperation -         originalTree         : AlterSequenceOperation -   alternatives:-      alternative AlterSequenceOwned:-         child ann            : Annotation -         child owned          : Name -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequenceRename:-         child ann            : Annotation -         child name           : Name -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequenceActions:-         child ann            : Annotation -         child actions        : AlterSequenceActionList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AlterSequenceOperation = AlterSequenceOwned (Annotation) (Name)-                            | AlterSequenceRename (Annotation) (Name)-                            | AlterSequenceActions (Annotation) (AlterSequenceActionList)-                            deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AlterSequenceOperation :: AlterSequenceOperation ->-                              T_AlterSequenceOperation-_sem_AlterSequenceOperation (AlterSequenceOwned _ann _owned) =-    (_sem_AlterSequenceOperation_AlterSequenceOwned (_sem_Annotation _ann) (_sem_Name _owned))-_sem_AlterSequenceOperation (AlterSequenceRename _ann _name) =-    (_sem_AlterSequenceOperation_AlterSequenceRename (_sem_Annotation _ann) (_sem_Name _name))-_sem_AlterSequenceOperation (AlterSequenceActions _ann _actions) =-    (_sem_AlterSequenceOperation_AlterSequenceActions (_sem_Annotation _ann) (_sem_AlterSequenceActionList _actions))--- semantic domain-type T_AlterSequenceOperation = Catalog ->-                                TypeCheckFlags ->-                                (Maybe TypeExtra) ->-                                ( AlterSequenceOperation,AlterSequenceOperation)-data Inh_AlterSequenceOperation = Inh_AlterSequenceOperation {_cat_Inh_AlterSequenceOperation :: Catalog,_flags_Inh_AlterSequenceOperation :: TypeCheckFlags,_imCast_Inh_AlterSequenceOperation :: (Maybe TypeExtra)}-data Syn_AlterSequenceOperation = Syn_AlterSequenceOperation {_annotatedTree_Syn_AlterSequenceOperation :: AlterSequenceOperation,_originalTree_Syn_AlterSequenceOperation :: AlterSequenceOperation}-_wrap_AlterSequenceOperation :: T_AlterSequenceOperation ->-                               Inh_AlterSequenceOperation ->-                               Syn_AlterSequenceOperation-_wrap_AlterSequenceOperation sem (Inh_AlterSequenceOperation _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterSequenceOperation _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterSequenceOperation_AlterSequenceOwned :: T_Annotation ->-                                                 T_Name ->-                                                 T_AlterSequenceOperation-_sem_AlterSequenceOperation_AlterSequenceOwned ann_ owned_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _ownedOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceOperation-              _lhsOoriginalTree :: AlterSequenceOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _ownedOcat :: Catalog-              _ownedOflags :: TypeCheckFlags-              _ownedOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _ownedIannotatedTree :: Name-              _ownedIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 41, column 49)-              _annOtpe =-                  ({-# LINE 41 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2373 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 42, column 49)-              _ownedOtpe =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2379 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceOwned _annIannotatedTree _ownedIannotatedTree-                   {-# LINE 2385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceOwned _annIoriginalTree _ownedIoriginalTree-                   {-# LINE 2391 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2397 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2421 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _ownedOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2427 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _ownedOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2433 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _ownedOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2439 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _ownedIannotatedTree,_ownedIoriginalTree) =-                  owned_ _ownedOcat _ownedOflags _ownedOimCast _ownedOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceOperation_AlterSequenceRename :: T_Annotation ->-                                                  T_Name ->-                                                  T_AlterSequenceOperation-_sem_AlterSequenceOperation_AlterSequenceRename ann_ name_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceOperation-              _lhsOoriginalTree :: AlterSequenceOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 43, column 50)-              _annOtpe =-                  ({-# LINE 43 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 44, column 50)-              _nameOtpe =-                  ({-# LINE 44 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceRename _annIannotatedTree _nameIannotatedTree-                   {-# LINE 2483 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceRename _annIoriginalTree _nameIoriginalTree-                   {-# LINE 2489 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2495 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2501 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2507 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2513 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2519 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2525 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2531 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2537 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterSequenceOperation_AlterSequenceActions :: T_Annotation ->-                                                   T_AlterSequenceActionList ->-                                                   T_AlterSequenceOperation-_sem_AlterSequenceOperation_AlterSequenceActions ann_ actions_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterSequenceOperation-              _lhsOoriginalTree :: AlterSequenceOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _actionsOcat :: Catalog-              _actionsOflags :: TypeCheckFlags-              _actionsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _actionsIannotatedTree :: AlterSequenceActionList-              _actionsIoriginalTree :: AlterSequenceActionList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 45, column 51)-              _annOtpe =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2568 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceActions _annIannotatedTree _actionsIannotatedTree-                   {-# LINE 2574 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequenceActions _annIoriginalTree _actionsIoriginalTree-                   {-# LINE 2580 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2586 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2592 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2598 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2604 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2610 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actionsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2616 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actionsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2622 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actionsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2628 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _actionsIannotatedTree,_actionsIoriginalTree) =-                  actions_ _actionsOcat _actionsOflags _actionsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterTableAction ---------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterTableAction -         originalTree         : AlterTableAction -   alternatives:-      alternative AddColumn:-         child ann            : Annotation -         child att            : AttributeDef -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative DropColumn:-         child ann            : Annotation -         child nm             : {NameComponent}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterColumn:-         child ann            : Annotation -         child nm             : {NameComponent}-         child act            : AlterColumnAction -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AddConstraint:-         child ann            : Annotation -         child con            : Constraint -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AlterTableAction = AddColumn (Annotation) (AttributeDef)-                      | DropColumn (Annotation) (NameComponent)-                      | AlterColumn (Annotation) (NameComponent) (AlterColumnAction)-                      | AddConstraint (Annotation) (Constraint)-                      deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AlterTableAction :: AlterTableAction ->-                        T_AlterTableAction-_sem_AlterTableAction (AddColumn _ann _att) =-    (_sem_AlterTableAction_AddColumn (_sem_Annotation _ann) (_sem_AttributeDef _att))-_sem_AlterTableAction (DropColumn _ann _nm) =-    (_sem_AlterTableAction_DropColumn (_sem_Annotation _ann) _nm)-_sem_AlterTableAction (AlterColumn _ann _nm _act) =-    (_sem_AlterTableAction_AlterColumn (_sem_Annotation _ann) _nm (_sem_AlterColumnAction _act))-_sem_AlterTableAction (AddConstraint _ann _con) =-    (_sem_AlterTableAction_AddConstraint (_sem_Annotation _ann) (_sem_Constraint _con))--- semantic domain-type T_AlterTableAction = Catalog ->-                          TypeCheckFlags ->-                          (Maybe TypeExtra) ->-                          ( AlterTableAction,AlterTableAction)-data Inh_AlterTableAction = Inh_AlterTableAction {_cat_Inh_AlterTableAction :: Catalog,_flags_Inh_AlterTableAction :: TypeCheckFlags,_imCast_Inh_AlterTableAction :: (Maybe TypeExtra)}-data Syn_AlterTableAction = Syn_AlterTableAction {_annotatedTree_Syn_AlterTableAction :: AlterTableAction,_originalTree_Syn_AlterTableAction :: AlterTableAction}-_wrap_AlterTableAction :: T_AlterTableAction ->-                         Inh_AlterTableAction ->-                         Syn_AlterTableAction-_wrap_AlterTableAction sem (Inh_AlterTableAction _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterTableAction _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterTableAction_AddColumn :: T_Annotation ->-                                  T_AttributeDef ->-                                  T_AlterTableAction-_sem_AlterTableAction_AddColumn ann_ att_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterTableAction-              _lhsOoriginalTree :: AlterTableAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _attOcat :: Catalog-              _attOflags :: TypeCheckFlags-              _attOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _attIannotatedTree :: AttributeDef-              _attIoriginalTree :: AttributeDef-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 46, column 34)-              _annOtpe =-                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2725 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AddColumn _annIannotatedTree _attIannotatedTree-                   {-# LINE 2731 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AddColumn _annIoriginalTree _attIoriginalTree-                   {-# LINE 2737 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2743 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2749 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2755 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2761 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2767 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2773 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2779 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2785 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _attIannotatedTree,_attIoriginalTree) =-                  att_ _attOcat _attOflags _attOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterTableAction_DropColumn :: T_Annotation ->-                                   NameComponent ->-                                   T_AlterTableAction-_sem_AlterTableAction_DropColumn ann_ nm_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterTableAction-              _lhsOoriginalTree :: AlterTableAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 49, column 35)-              _annOtpe =-                  ({-# LINE 49 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropColumn _annIannotatedTree nm_-                   {-# LINE 2817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropColumn _annIoriginalTree nm_-                   {-# LINE 2823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2829 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2835 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2841 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2847 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2853 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterTableAction_AlterColumn :: T_Annotation ->-                                    NameComponent ->-                                    T_AlterColumnAction ->-                                    T_AlterTableAction-_sem_AlterTableAction_AlterColumn ann_ nm_ act_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterTableAction-              _lhsOoriginalTree :: AlterTableAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _actOcat :: Catalog-              _actOflags :: TypeCheckFlags-              _actOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _actIannotatedTree :: AlterColumnAction-              _actIoriginalTree :: AlterColumnAction-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 48, column 36)-              _annOtpe =-                  ({-# LINE 48 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2883 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterColumn _annIannotatedTree nm_ _actIannotatedTree-                   {-# LINE 2889 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterColumn _annIoriginalTree nm_ _actIoriginalTree-                   {-# LINE 2895 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2901 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2907 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2913 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2919 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2925 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 2931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 2937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 2943 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _actIannotatedTree,_actIoriginalTree) =-                  act_ _actOcat _actOflags _actOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterTableAction_AddConstraint :: T_Annotation ->-                                      T_Constraint ->-                                      T_AlterTableAction-_sem_AlterTableAction_AddConstraint ann_ con_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterTableAction-              _lhsOoriginalTree :: AlterTableAction-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _conOcat :: Catalog-              _conOflags :: TypeCheckFlags-              _conOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _conIannotatedTree :: Constraint-              _conIoriginalTree :: Constraint-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 47, column 38)-              _annOtpe =-                  ({-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 2974 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AddConstraint _annIannotatedTree _conIannotatedTree-                   {-# LINE 2980 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AddConstraint _annIoriginalTree _conIoriginalTree-                   {-# LINE 2986 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 2992 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 2998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _conOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _conOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _conOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _conIannotatedTree,_conIoriginalTree) =-                  con_ _conOcat _conOflags _conOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterTableActionList -----------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterTableActionList -         originalTree         : AlterTableActionList -   alternatives:-      alternative Cons:-         child hd             : AlterTableAction -         child tl             : AlterTableActionList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type AlterTableActionList = [AlterTableAction]--- cata-_sem_AlterTableActionList :: AlterTableActionList ->-                            T_AlterTableActionList-_sem_AlterTableActionList list =-    (Prelude.foldr _sem_AlterTableActionList_Cons _sem_AlterTableActionList_Nil (Prelude.map _sem_AlterTableAction list))--- semantic domain-type T_AlterTableActionList = Catalog ->-                              TypeCheckFlags ->-                              (Maybe TypeExtra) ->-                              ( AlterTableActionList,AlterTableActionList)-data Inh_AlterTableActionList = Inh_AlterTableActionList {_cat_Inh_AlterTableActionList :: Catalog,_flags_Inh_AlterTableActionList :: TypeCheckFlags,_imCast_Inh_AlterTableActionList :: (Maybe TypeExtra)}-data Syn_AlterTableActionList = Syn_AlterTableActionList {_annotatedTree_Syn_AlterTableActionList :: AlterTableActionList,_originalTree_Syn_AlterTableActionList :: AlterTableActionList}-_wrap_AlterTableActionList :: T_AlterTableActionList ->-                             Inh_AlterTableActionList ->-                             Syn_AlterTableActionList-_wrap_AlterTableActionList sem (Inh_AlterTableActionList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterTableActionList _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterTableActionList_Cons :: T_AlterTableAction ->-                                 T_AlterTableActionList ->-                                 T_AlterTableActionList-_sem_AlterTableActionList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: AlterTableActionList-              _lhsOoriginalTree :: AlterTableActionList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: AlterTableAction-              _hdIoriginalTree :: AlterTableAction-              _tlIannotatedTree :: AlterTableActionList-              _tlIoriginalTree :: AlterTableActionList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 3105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 3111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3129 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3135 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterTableActionList_Nil :: T_AlterTableActionList-_sem_AlterTableActionList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: AlterTableActionList-              _lhsOoriginalTree :: AlterTableActionList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 3177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 3183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3195 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AlterTableOperation ------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AlterTableOperation -         originalTree         : AlterTableOperation -   alternatives:-      alternative RenameTable:-         child ann            : Annotation -         child newName        : Name -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative RenameColumn:-         child ann            : Annotation -         child oldName        : {NameComponent}-         child newName        : {NameComponent}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterTableActions:-         child ann            : Annotation -         child actions        : AlterTableActionList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AlterTableOperation = RenameTable (Annotation) (Name)-                         | RenameColumn (Annotation) (NameComponent) (NameComponent)-                         | AlterTableActions (Annotation) (AlterTableActionList)-                         deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AlterTableOperation :: AlterTableOperation ->-                           T_AlterTableOperation-_sem_AlterTableOperation (RenameTable _ann _newName) =-    (_sem_AlterTableOperation_RenameTable (_sem_Annotation _ann) (_sem_Name _newName))-_sem_AlterTableOperation (RenameColumn _ann _oldName _newName) =-    (_sem_AlterTableOperation_RenameColumn (_sem_Annotation _ann) _oldName _newName)-_sem_AlterTableOperation (AlterTableActions _ann _actions) =-    (_sem_AlterTableOperation_AlterTableActions (_sem_Annotation _ann) (_sem_AlterTableActionList _actions))--- semantic domain-type T_AlterTableOperation = Catalog ->-                             TypeCheckFlags ->-                             (Maybe TypeExtra) ->-                             ( AlterTableOperation,AlterTableOperation)-data Inh_AlterTableOperation = Inh_AlterTableOperation {_cat_Inh_AlterTableOperation :: Catalog,_flags_Inh_AlterTableOperation :: TypeCheckFlags,_imCast_Inh_AlterTableOperation :: (Maybe TypeExtra)}-data Syn_AlterTableOperation = Syn_AlterTableOperation {_annotatedTree_Syn_AlterTableOperation :: AlterTableOperation,_originalTree_Syn_AlterTableOperation :: AlterTableOperation}-_wrap_AlterTableOperation :: T_AlterTableOperation ->-                            Inh_AlterTableOperation ->-                            Syn_AlterTableOperation-_wrap_AlterTableOperation sem (Inh_AlterTableOperation _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AlterTableOperation _lhsOannotatedTree _lhsOoriginalTree))-_sem_AlterTableOperation_RenameTable :: T_Annotation ->-                                       T_Name ->-                                       T_AlterTableOperation-_sem_AlterTableOperation_RenameTable ann_ newName_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _newNameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterTableOperation-              _lhsOoriginalTree :: AlterTableOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _newNameOcat :: Catalog-              _newNameOflags :: TypeCheckFlags-              _newNameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _newNameIannotatedTree :: Name-              _newNameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 52, column 39)-              _annOtpe =-                  ({-# LINE 52 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 3280 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 53, column 39)-              _newNameOtpe =-                  ({-# LINE 53 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 3286 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RenameTable _annIannotatedTree _newNameIannotatedTree-                   {-# LINE 3292 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RenameTable _annIoriginalTree _newNameIoriginalTree-                   {-# LINE 3298 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3304 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3310 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3316 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3322 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3328 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3340 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _newNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3346 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _newNameIannotatedTree,_newNameIoriginalTree) =-                  newName_ _newNameOcat _newNameOflags _newNameOimCast _newNameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterTableOperation_RenameColumn :: T_Annotation ->-                                        NameComponent ->-                                        NameComponent ->-                                        T_AlterTableOperation-_sem_AlterTableOperation_RenameColumn ann_ oldName_ newName_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterTableOperation-              _lhsOoriginalTree :: AlterTableOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 51, column 40)-              _annOtpe =-                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 3373 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RenameColumn _annIannotatedTree oldName_ newName_-                   {-# LINE 3379 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RenameColumn _annIoriginalTree oldName_ newName_-                   {-# LINE 3385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3391 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3397 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AlterTableOperation_AlterTableActions :: T_Annotation ->-                                             T_AlterTableActionList ->-                                             T_AlterTableOperation-_sem_AlterTableOperation_AlterTableActions ann_ actions_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: AlterTableOperation-              _lhsOoriginalTree :: AlterTableOperation-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _actionsOcat :: Catalog-              _actionsOflags :: TypeCheckFlags-              _actionsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _actionsIannotatedTree :: AlterTableActionList-              _actionsIoriginalTree :: AlterTableActionList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 50, column 45)-              _annOtpe =-                  ({-# LINE 50 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 3444 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterTableActions _annIannotatedTree _actionsIannotatedTree-                   {-# LINE 3450 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterTableActions _annIoriginalTree _actionsIoriginalTree-                   {-# LINE 3456 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3462 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3468 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3474 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3480 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3486 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actionsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3492 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actionsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3498 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _actionsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3504 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _actionsIannotatedTree,_actionsIoriginalTree) =-                  actions_ _actionsOcat _actionsOflags _actionsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- Annotation ---------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-         tpe                  : Either [TypeError] TypeExtra-      synthesized attributes:-         annotatedTree        : Annotation -         originalTree         : Annotation -   alternatives:-      alternative Annotation:-         child anSrc          : {Maybe SourcePosition}-         child anType         : {Maybe T.TypeExtra}-         child anErrs         : {[T.TypeError]}-         child anImplicitCast : {Maybe T.TypeExtra}-         child anCatUpd       : {[C.CatalogUpdate]}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}---- | Annotation type - one of these is attached to most of the--- data types used in the ast.--- the fields in order are:-data Annotation = Annotation {-                             -- | source position for this node-                             anSrc :: ( Maybe SourcePosition)-                             -- | type of the node, 'Nothing' if the tree hasn't been typechecked or if a type error elsewhere prevents determining this node's type-                             ,anType :: ( Maybe T.TypeExtra)-                             -- | any type errors-                             ,anErrs :: ( [T.TypeError])-                             -- | if an implicit cast is needed between this node an its parent, this the target type of cast. If no implicit cast is needed, this is Nothing-                             ,anImplicitCast :: ( Maybe T.TypeExtra)-                             -- | any catalog updates that a statement produces, used only for ddl Statements-                             ,anCatUpd :: ( [C.CatalogUpdate])--    } deriving (Eq,Show,Data,Typeable)---- cata-_sem_Annotation :: Annotation ->-                  T_Annotation-_sem_Annotation (Annotation _anSrc _anType _anErrs _anImplicitCast _anCatUpd) =-    (_sem_Annotation_Annotation _anSrc _anType _anErrs _anImplicitCast _anCatUpd)--- semantic domain-type T_Annotation = Catalog ->-                    TypeCheckFlags ->-                    (Maybe TypeExtra) ->-                    (Either [TypeError] TypeExtra) ->-                    ( Annotation,Annotation)-data Inh_Annotation = Inh_Annotation {_cat_Inh_Annotation :: Catalog,_flags_Inh_Annotation :: TypeCheckFlags,_imCast_Inh_Annotation :: (Maybe TypeExtra),_tpe_Inh_Annotation :: (Either [TypeError] TypeExtra)}-data Syn_Annotation = Syn_Annotation {_annotatedTree_Syn_Annotation :: Annotation,_originalTree_Syn_Annotation :: Annotation}-_wrap_Annotation :: T_Annotation ->-                   Inh_Annotation ->-                   Syn_Annotation-_wrap_Annotation sem (Inh_Annotation _lhsIcat _lhsIflags _lhsIimCast _lhsItpe) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast _lhsItpe-     in  (Syn_Annotation _lhsOannotatedTree _lhsOoriginalTree))-_sem_Annotation_Annotation :: (Maybe SourcePosition) ->-                             (Maybe T.TypeExtra) ->-                             ([T.TypeError]) ->-                             (Maybe T.TypeExtra) ->-                             ([C.CatalogUpdate]) ->-                             T_Annotation-_sem_Annotation_Annotation anSrc_ anType_ anErrs_ anImplicitCast_ anCatUpd_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast-       _lhsItpe ->-         (let _lhsOannotatedTree :: Annotation-              _lhsOoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag"(line 140, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 140 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   let t = either (const Nothing) Just _lhsItpe-                       es = either id (const []) _lhsItpe-                   in Annotation anSrc_ t es _lhsIimCast anCatUpd_-                   {-# LINE 3573 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Annotation anSrc_ anType_ anErrs_ anImplicitCast_ anCatUpd_-                   {-# LINE 3579 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Annotation anSrc_ anType_ anErrs_ anImplicitCast_ anCatUpd_-                   {-# LINE 3585 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3591 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AttributeDef -------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AttributeDef -         originalTree         : AttributeDef -   alternatives:-      alternative AttributeDef:-         child ann            : Annotation -         child name           : {NameComponent}-         child typ            : TypeName -         child def            : MaybeScalarExpr -         child cons           : RowConstraintList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data AttributeDef = AttributeDef (Annotation) (NameComponent) (TypeName) (MaybeScalarExpr) (RowConstraintList)-                  deriving ( Data,Eq,Show,Typeable)--- cata-_sem_AttributeDef :: AttributeDef ->-                    T_AttributeDef-_sem_AttributeDef (AttributeDef _ann _name _typ _def _cons) =-    (_sem_AttributeDef_AttributeDef (_sem_Annotation _ann) _name (_sem_TypeName _typ) (_sem_MaybeScalarExpr _def) (_sem_RowConstraintList _cons))--- semantic domain-type T_AttributeDef = Catalog ->-                      TypeCheckFlags ->-                      (Maybe TypeExtra) ->-                      ( AttributeDef,AttributeDef)-data Inh_AttributeDef = Inh_AttributeDef {_cat_Inh_AttributeDef :: Catalog,_flags_Inh_AttributeDef :: TypeCheckFlags,_imCast_Inh_AttributeDef :: (Maybe TypeExtra)}-data Syn_AttributeDef = Syn_AttributeDef {_annotatedTree_Syn_AttributeDef :: AttributeDef,_originalTree_Syn_AttributeDef :: AttributeDef}-_wrap_AttributeDef :: T_AttributeDef ->-                     Inh_AttributeDef ->-                     Syn_AttributeDef-_wrap_AttributeDef sem (Inh_AttributeDef _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AttributeDef _lhsOannotatedTree _lhsOoriginalTree))-_sem_AttributeDef_AttributeDef :: T_Annotation ->-                                 NameComponent ->-                                 T_TypeName ->-                                 T_MaybeScalarExpr ->-                                 T_RowConstraintList ->-                                 T_AttributeDef-_sem_AttributeDef_AttributeDef ann_ name_ typ_ def_ cons_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _defOdownEnv :: Environment-              _defOexpectedCast :: Bool-              _defOexpectedType :: (Maybe TypeExtra)-              _defOassignmentCastContext :: Bool-              _lhsOannotatedTree :: AttributeDef-              _lhsOoriginalTree :: AttributeDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _defOcat :: Catalog-              _defOflags :: TypeCheckFlags-              _defOimCast :: (Maybe TypeExtra)-              _consOcat :: Catalog-              _consOflags :: TypeCheckFlags-              _consOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              _defIannotatedTree :: MaybeScalarExpr-              _defIoriginalTree :: MaybeScalarExpr-              _defIupType :: (Maybe TypeExtra)-              _consIannotatedTree :: RowConstraintList-              _consIoriginalTree :: RowConstraintList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 54, column 33)-              _annOtpe =-                  ({-# LINE 54 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 3678 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 55, column 33)-              _defOdownEnv =-                  ({-# LINE 55 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 3684 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 56, column 33)-              _defOexpectedCast =-                  ({-# LINE 56 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 3690 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 57, column 33)-              _defOexpectedType =-                  ({-# LINE 57 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 3696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 807, column 33)-              _defOassignmentCastContext =-                  ({-# LINE 807 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 3702 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AttributeDef _annIannotatedTree name_ _typIannotatedTree _defIannotatedTree _consIannotatedTree-                   {-# LINE 3708 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AttributeDef _annIoriginalTree name_ _typIoriginalTree _defIoriginalTree _consIoriginalTree-                   {-# LINE 3714 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3720 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3726 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3732 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3744 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3750 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3756 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3762 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _defOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3768 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _defOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3774 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _defOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3780 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _consOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3786 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _consOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3792 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _consOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3798 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-              ( _defIannotatedTree,_defIoriginalTree,_defIupType) =-                  def_ _defOassignmentCastContext _defOcat _defOdownEnv _defOexpectedCast _defOexpectedType _defOflags _defOimCast-              ( _consIannotatedTree,_consIoriginalTree) =-                  cons_ _consOcat _consOflags _consOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- AttributeDefList ---------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : AttributeDefList -         originalTree         : AttributeDefList -   alternatives:-      alternative Cons:-         child hd             : AttributeDef -         child tl             : AttributeDefList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type AttributeDefList = [AttributeDef]--- cata-_sem_AttributeDefList :: AttributeDefList ->-                        T_AttributeDefList-_sem_AttributeDefList list =-    (Prelude.foldr _sem_AttributeDefList_Cons _sem_AttributeDefList_Nil (Prelude.map _sem_AttributeDef list))--- semantic domain-type T_AttributeDefList = Catalog ->-                          TypeCheckFlags ->-                          (Maybe TypeExtra) ->-                          ( AttributeDefList,AttributeDefList)-data Inh_AttributeDefList = Inh_AttributeDefList {_cat_Inh_AttributeDefList :: Catalog,_flags_Inh_AttributeDefList :: TypeCheckFlags,_imCast_Inh_AttributeDefList :: (Maybe TypeExtra)}-data Syn_AttributeDefList = Syn_AttributeDefList {_annotatedTree_Syn_AttributeDefList :: AttributeDefList,_originalTree_Syn_AttributeDefList :: AttributeDefList}-_wrap_AttributeDefList :: T_AttributeDefList ->-                         Inh_AttributeDefList ->-                         Syn_AttributeDefList-_wrap_AttributeDefList sem (Inh_AttributeDefList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_AttributeDefList _lhsOannotatedTree _lhsOoriginalTree))-_sem_AttributeDefList_Cons :: T_AttributeDef ->-                             T_AttributeDefList ->-                             T_AttributeDefList-_sem_AttributeDefList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: AttributeDefList-              _lhsOoriginalTree :: AttributeDefList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: AttributeDef-              _hdIoriginalTree :: AttributeDef-              _tlIannotatedTree :: AttributeDefList-              _tlIoriginalTree :: AttributeDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 3873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 3879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3903 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3909 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 3915 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 3921 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 3927 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_AttributeDefList_Nil :: T_AttributeDefList-_sem_AttributeDefList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: AttributeDefList-              _lhsOoriginalTree :: AttributeDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 3945 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 3951 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 3957 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 3963 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- CaseScalarExprListScalarExprPair -----------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-         thenExpectedType     : Maybe TypeExtra-         whenExpectedType     : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : CaseScalarExprListScalarExprPair -         originalTree         : CaseScalarExprListScalarExprPair -         thenType             : Maybe TypeExtra-         upTypes              : [Maybe TypeExtra]-         whenTypes            : [Maybe TypeExtra]-   alternatives:-      alternative Tuple:-         child x1             : ScalarExprList -         child x2             : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type CaseScalarExprListScalarExprPair = ( ScalarExprList,ScalarExpr)--- cata-_sem_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ->-                                        T_CaseScalarExprListScalarExprPair-_sem_CaseScalarExprListScalarExprPair ( x1,x2) =-    (_sem_CaseScalarExprListScalarExprPair_Tuple (_sem_ScalarExprList x1) (_sem_ScalarExpr x2))--- semantic domain-type T_CaseScalarExprListScalarExprPair = Catalog ->-                                          Environment ->-                                          TypeCheckFlags ->-                                          (Maybe TypeExtra) ->-                                          (Maybe TypeExtra) ->-                                          (Maybe TypeExtra) ->-                                          ( CaseScalarExprListScalarExprPair,CaseScalarExprListScalarExprPair,(Maybe TypeExtra),([Maybe TypeExtra]),([Maybe TypeExtra]))-data Inh_CaseScalarExprListScalarExprPair = Inh_CaseScalarExprListScalarExprPair {_cat_Inh_CaseScalarExprListScalarExprPair :: Catalog,_downEnv_Inh_CaseScalarExprListScalarExprPair :: Environment,_flags_Inh_CaseScalarExprListScalarExprPair :: TypeCheckFlags,_imCast_Inh_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra),_thenExpectedType_Inh_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra),_whenExpectedType_Inh_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra)}-data Syn_CaseScalarExprListScalarExprPair = Syn_CaseScalarExprListScalarExprPair {_annotatedTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair,_originalTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair,_thenType_Syn_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra),_upTypes_Syn_CaseScalarExprListScalarExprPair :: ([Maybe TypeExtra]),_whenTypes_Syn_CaseScalarExprListScalarExprPair :: ([Maybe TypeExtra])}-_wrap_CaseScalarExprListScalarExprPair :: T_CaseScalarExprListScalarExprPair ->-                                         Inh_CaseScalarExprListScalarExprPair ->-                                         Syn_CaseScalarExprListScalarExprPair-_wrap_CaseScalarExprListScalarExprPair sem (Inh_CaseScalarExprListScalarExprPair _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenType,_lhsOupTypes,_lhsOwhenTypes) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType-     in  (Syn_CaseScalarExprListScalarExprPair _lhsOannotatedTree _lhsOoriginalTree _lhsOthenType _lhsOupTypes _lhsOwhenTypes))-_sem_CaseScalarExprListScalarExprPair_Tuple :: T_ScalarExprList ->-                                              T_ScalarExpr ->-                                              T_CaseScalarExprListScalarExprPair-_sem_CaseScalarExprListScalarExprPair_Tuple x1_ x2_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast-       _lhsIthenExpectedType-       _lhsIwhenExpectedType ->-         (let _x2OodbcFunction :: Bool-              _lhsOwhenTypes :: ([Maybe TypeExtra])-              _lhsOthenType :: (Maybe TypeExtra)-              _x1OexpectedTypes :: ([TypeExtra])-              _x1OexpectedCast :: Bool-              _x2OexpectedType :: (Maybe TypeExtra)-              _x2OexpectedCast :: Bool-              _x1OassignmentCastContext :: Bool-              _x2OassignmentCastContext :: Bool-              _lhsOannotatedTree :: CaseScalarExprListScalarExprPair-              _lhsOoriginalTree :: CaseScalarExprListScalarExprPair-              _lhsOupTypes :: ([Maybe TypeExtra])-              _x1Ocat :: Catalog-              _x1OdownEnv :: Environment-              _x1Oflags :: TypeCheckFlags-              _x1OimCast :: (Maybe TypeExtra)-              _x2Ocat :: Catalog-              _x2OdownEnv :: Environment-              _x2Oflags :: TypeCheckFlags-              _x2OimCast :: (Maybe TypeExtra)-              _x1IannotatedTree :: ScalarExprList-              _x1IoriginalTree :: ScalarExprList-              _x1IupTypes :: ([Maybe TypeExtra])-              _x2IannotatedTree :: ScalarExpr-              _x2IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _x2IoriginalTree :: ScalarExpr-              _x2IupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 134, column 13)-              _x2OodbcFunction =-                  ({-# LINE 134 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 4053 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 549, column 13)-              _lhsOwhenTypes =-                  ({-# LINE 549 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _x1IupTypes-                   {-# LINE 4059 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 550, column 13)-              _lhsOthenType =-                  ({-# LINE 550 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _x2IupType-                   {-# LINE 4065 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 605, column 11)-              _x1OexpectedTypes =-                  ({-# LINE 605 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe [] repeat _lhsIwhenExpectedType-                   {-# LINE 4071 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 606, column 11)-              _x1OexpectedCast =-                  ({-# LINE 606 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 4077 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 607, column 11)-              _x2OexpectedType =-                  ({-# LINE 607 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIthenExpectedType-                   {-# LINE 4083 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 608, column 11)-              _x2OexpectedCast =-                  ({-# LINE 608 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   True-                   {-# LINE 4089 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 808, column 46)-              _x1OassignmentCastContext =-                  ({-# LINE 808 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 4095 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 809, column 46)-              _x2OassignmentCastContext =-                  ({-# LINE 809 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 4101 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IannotatedTree,_x2IannotatedTree)-                   {-# LINE 4107 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IoriginalTree,_x2IoriginalTree)-                   {-# LINE 4113 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4125 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOupTypes =-                  ({-# LINE 554 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _x1IupTypes-                   {-# LINE 4131 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1OdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 4143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4161 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2OdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 4167 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4179 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _x1IannotatedTree,_x1IoriginalTree,_x1IupTypes) =-                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedTypes _x1Oflags _x1OimCast-              ( _x2IannotatedTree,_x2IcolExprs,_x2IoriginalTree,_x2IupType) =-                  x2_ _x2OassignmentCastContext _x2Ocat _x2OdownEnv _x2OexpectedCast _x2OexpectedType _x2Oflags _x2OimCast _x2OodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenType,_lhsOupTypes,_lhsOwhenTypes)))--- CaseScalarExprListScalarExprPairList -------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-         thenExpectedType     : Maybe TypeExtra-         whenExpectedType     : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : CaseScalarExprListScalarExprPairList -         originalTree         : CaseScalarExprListScalarExprPairList -         thenTypes            : [Maybe TypeExtra]-         upTypes              : [Maybe TypeExtra]-         whenTypes            : [[Maybe TypeExtra]]-   alternatives:-      alternative Cons:-         child hd             : CaseScalarExprListScalarExprPair -         child tl             : CaseScalarExprListScalarExprPairList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type CaseScalarExprListScalarExprPairList = [CaseScalarExprListScalarExprPair]--- cata-_sem_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ->-                                            T_CaseScalarExprListScalarExprPairList-_sem_CaseScalarExprListScalarExprPairList list =-    (Prelude.foldr _sem_CaseScalarExprListScalarExprPairList_Cons _sem_CaseScalarExprListScalarExprPairList_Nil (Prelude.map _sem_CaseScalarExprListScalarExprPair list))--- semantic domain-type T_CaseScalarExprListScalarExprPairList = Catalog ->-                                              Environment ->-                                              TypeCheckFlags ->-                                              (Maybe TypeExtra) ->-                                              (Maybe TypeExtra) ->-                                              (Maybe TypeExtra) ->-                                              ( CaseScalarExprListScalarExprPairList,CaseScalarExprListScalarExprPairList,([Maybe TypeExtra]),([Maybe TypeExtra]),([[Maybe TypeExtra]]))-data Inh_CaseScalarExprListScalarExprPairList = Inh_CaseScalarExprListScalarExprPairList {_cat_Inh_CaseScalarExprListScalarExprPairList :: Catalog,_downEnv_Inh_CaseScalarExprListScalarExprPairList :: Environment,_flags_Inh_CaseScalarExprListScalarExprPairList :: TypeCheckFlags,_imCast_Inh_CaseScalarExprListScalarExprPairList :: (Maybe TypeExtra),_thenExpectedType_Inh_CaseScalarExprListScalarExprPairList :: (Maybe TypeExtra),_whenExpectedType_Inh_CaseScalarExprListScalarExprPairList :: (Maybe TypeExtra)}-data Syn_CaseScalarExprListScalarExprPairList = Syn_CaseScalarExprListScalarExprPairList {_annotatedTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList,_originalTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList,_thenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([Maybe TypeExtra]),_upTypes_Syn_CaseScalarExprListScalarExprPairList :: ([Maybe TypeExtra]),_whenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([[Maybe TypeExtra]])}-_wrap_CaseScalarExprListScalarExprPairList :: T_CaseScalarExprListScalarExprPairList ->-                                             Inh_CaseScalarExprListScalarExprPairList ->-                                             Syn_CaseScalarExprListScalarExprPairList-_wrap_CaseScalarExprListScalarExprPairList sem (Inh_CaseScalarExprListScalarExprPairList _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOupTypes,_lhsOwhenTypes) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType-     in  (Syn_CaseScalarExprListScalarExprPairList _lhsOannotatedTree _lhsOoriginalTree _lhsOthenTypes _lhsOupTypes _lhsOwhenTypes))-_sem_CaseScalarExprListScalarExprPairList_Cons :: T_CaseScalarExprListScalarExprPair ->-                                                 T_CaseScalarExprListScalarExprPairList ->-                                                 T_CaseScalarExprListScalarExprPairList-_sem_CaseScalarExprListScalarExprPairList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast-       _lhsIthenExpectedType-       _lhsIwhenExpectedType ->-         (let _lhsOwhenTypes :: ([[Maybe TypeExtra]])-              _lhsOthenTypes :: ([Maybe TypeExtra])-              _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList-              _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList-              _lhsOupTypes :: ([Maybe TypeExtra])-              _hdOcat :: Catalog-              _hdOdownEnv :: Environment-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _hdOthenExpectedType :: (Maybe TypeExtra)-              _hdOwhenExpectedType :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOdownEnv :: Environment-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _tlOthenExpectedType :: (Maybe TypeExtra)-              _tlOwhenExpectedType :: (Maybe TypeExtra)-              _hdIannotatedTree :: CaseScalarExprListScalarExprPair-              _hdIoriginalTree :: CaseScalarExprListScalarExprPair-              _hdIthenType :: (Maybe TypeExtra)-              _hdIupTypes :: ([Maybe TypeExtra])-              _hdIwhenTypes :: ([Maybe TypeExtra])-              _tlIannotatedTree :: CaseScalarExprListScalarExprPairList-              _tlIoriginalTree :: CaseScalarExprListScalarExprPairList-              _tlIthenTypes :: ([Maybe TypeExtra])-              _tlIupTypes :: ([Maybe TypeExtra])-              _tlIwhenTypes :: ([[Maybe TypeExtra]])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 538, column 10)-              _lhsOwhenTypes =-                  ({-# LINE 538 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _hdIwhenTypes : _tlIwhenTypes-                   {-# LINE 4277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 539, column 10)-              _lhsOthenTypes =-                  ({-# LINE 539 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _hdIthenType : _tlIthenTypes-                   {-# LINE 4283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 4289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 4295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOupTypes =-                  ({-# LINE 554 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tlIupTypes-                   {-# LINE 4313 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4319 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOdownEnv =-                  ({-# LINE 553 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 4325 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4331 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4337 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOthenExpectedType =-                  ({-# LINE 601 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIthenExpectedType-                   {-# LINE 4343 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOwhenExpectedType =-                  ({-# LINE 602 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIwhenExpectedType-                   {-# LINE 4349 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4355 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOdownEnv =-                  ({-# LINE 553 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 4361 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4367 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4373 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOthenExpectedType =-                  ({-# LINE 601 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIthenExpectedType-                   {-# LINE 4379 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOwhenExpectedType =-                  ({-# LINE 602 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIwhenExpectedType-                   {-# LINE 4385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree,_hdIthenType,_hdIupTypes,_hdIwhenTypes) =-                  hd_ _hdOcat _hdOdownEnv _hdOflags _hdOimCast _hdOthenExpectedType _hdOwhenExpectedType-              ( _tlIannotatedTree,_tlIoriginalTree,_tlIthenTypes,_tlIupTypes,_tlIwhenTypes) =-                  tl_ _tlOcat _tlOdownEnv _tlOflags _tlOimCast _tlOthenExpectedType _tlOwhenExpectedType-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOupTypes,_lhsOwhenTypes)))-_sem_CaseScalarExprListScalarExprPairList_Nil :: T_CaseScalarExprListScalarExprPairList-_sem_CaseScalarExprListScalarExprPairList_Nil =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast-       _lhsIthenExpectedType-       _lhsIwhenExpectedType ->-         (let _lhsOwhenTypes :: ([[Maybe TypeExtra]])-              _lhsOthenTypes :: ([Maybe TypeExtra])-              _lhsOupTypes :: ([Maybe TypeExtra])-              _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList-              _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 540, column 9)-              _lhsOwhenTypes =-                  ({-# LINE 540 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   []-                   {-# LINE 4409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 541, column 9)-              _lhsOthenTypes =-                  ({-# LINE 541 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   []-                   {-# LINE 4415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 542, column 9)-              _lhsOupTypes =-                  ({-# LINE 542 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   []-                   {-# LINE 4421 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 4427 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 4433 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4439 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4445 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOupTypes,_lhsOwhenTypes)))--- Constraint ---------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : Constraint -         originalTree         : Constraint -   alternatives:-      alternative UniqueConstraint:-         child ann            : Annotation -         child name           : {String}-         child x              : {[NameComponent]}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative PrimaryKeyConstraint:-         child ann            : Annotation -         child name           : {String}-         child x              : {[NameComponent]}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CheckConstraint:-         child ann            : Annotation -         child name           : {String}-         child expr           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ReferenceConstraint:-         child ann            : Annotation -         child name           : {String}-         child atts           : {[NameComponent]}-         child table          : Name -         child tableAtts      : {[NameComponent]}-         child onUpdate       : {Cascade}-         child onDelete       : {Cascade}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data Constraint = UniqueConstraint (Annotation) (String) (([NameComponent]))-                | PrimaryKeyConstraint (Annotation) (String) (([NameComponent]))-                | CheckConstraint (Annotation) (String) (ScalarExpr)-                | ReferenceConstraint (Annotation) (String) (([NameComponent])) (Name) (([NameComponent])) (Cascade) (Cascade)-                deriving ( Data,Eq,Show,Typeable)--- cata-_sem_Constraint :: Constraint ->-                  T_Constraint-_sem_Constraint (UniqueConstraint _ann _name _x) =-    (_sem_Constraint_UniqueConstraint (_sem_Annotation _ann) _name _x)-_sem_Constraint (PrimaryKeyConstraint _ann _name _x) =-    (_sem_Constraint_PrimaryKeyConstraint (_sem_Annotation _ann) _name _x)-_sem_Constraint (CheckConstraint _ann _name _expr) =-    (_sem_Constraint_CheckConstraint (_sem_Annotation _ann) _name (_sem_ScalarExpr _expr))-_sem_Constraint (ReferenceConstraint _ann _name _atts _table _tableAtts _onUpdate _onDelete) =-    (_sem_Constraint_ReferenceConstraint (_sem_Annotation _ann) _name _atts (_sem_Name _table) _tableAtts _onUpdate _onDelete)--- semantic domain-type T_Constraint = Catalog ->-                    TypeCheckFlags ->-                    (Maybe TypeExtra) ->-                    ( Constraint,Constraint)-data Inh_Constraint = Inh_Constraint {_cat_Inh_Constraint :: Catalog,_flags_Inh_Constraint :: TypeCheckFlags,_imCast_Inh_Constraint :: (Maybe TypeExtra)}-data Syn_Constraint = Syn_Constraint {_annotatedTree_Syn_Constraint :: Constraint,_originalTree_Syn_Constraint :: Constraint}-_wrap_Constraint :: T_Constraint ->-                   Inh_Constraint ->-                   Syn_Constraint-_wrap_Constraint sem (Inh_Constraint _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_Constraint _lhsOannotatedTree _lhsOoriginalTree))-_sem_Constraint_UniqueConstraint :: T_Annotation ->-                                   String ->-                                   ([NameComponent]) ->-                                   T_Constraint-_sem_Constraint_UniqueConstraint ann_ name_ x_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Constraint-              _lhsOoriginalTree :: Constraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 65, column 35)-              _annOtpe =-                  ({-# LINE 65 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 4541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   UniqueConstraint _annIannotatedTree name_ x_-                   {-# LINE 4547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   UniqueConstraint _annIoriginalTree name_ x_-                   {-# LINE 4553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Constraint_PrimaryKeyConstraint :: T_Annotation ->-                                       String ->-                                       ([NameComponent]) ->-                                       T_Constraint-_sem_Constraint_PrimaryKeyConstraint ann_ name_ x_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Constraint-              _lhsOoriginalTree :: Constraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 62, column 39)-              _annOtpe =-                  ({-# LINE 62 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 4608 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PrimaryKeyConstraint _annIannotatedTree name_ x_-                   {-# LINE 4614 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PrimaryKeyConstraint _annIoriginalTree name_ x_-                   {-# LINE 4620 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4626 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4632 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4638 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4644 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4650 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Constraint_CheckConstraint :: T_Annotation ->-                                  String ->-                                  T_ScalarExpr ->-                                  T_Constraint-_sem_Constraint_CheckConstraint ann_ name_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOodbcFunction :: Bool-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Constraint-              _lhsOoriginalTree :: Constraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 58, column 34)-              _annOtpe =-                  ({-# LINE 58 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 4687 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 59, column 34)-              _exprOdownEnv =-                  ({-# LINE 59 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 4693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 60, column 34)-              _exprOexpectedCast =-                  ({-# LINE 60 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 4699 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 61, column 34)-              _exprOexpectedType =-                  ({-# LINE 61 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 4705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 137, column 23)-              _exprOodbcFunction =-                  ({-# LINE 137 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 4711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 810, column 34)-              _exprOassignmentCastContext =-                  ({-# LINE 810 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 4717 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CheckConstraint _annIannotatedTree name_ _exprIannotatedTree-                   {-# LINE 4723 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CheckConstraint _annIoriginalTree name_ _exprIoriginalTree-                   {-# LINE 4729 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4735 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4765 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4771 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Constraint_ReferenceConstraint :: T_Annotation ->-                                      String ->-                                      ([NameComponent]) ->-                                      T_Name ->-                                      ([NameComponent]) ->-                                      Cascade ->-                                      Cascade ->-                                      T_Constraint-_sem_Constraint_ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _tableOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Constraint-              _lhsOoriginalTree :: Constraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tableOcat :: Catalog-              _tableOflags :: TypeCheckFlags-              _tableOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tableIannotatedTree :: Name-              _tableIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 63, column 38)-              _annOtpe =-                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 4814 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 64, column 38)-              _tableOtpe =-                  ({-# LINE 64 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 4820 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ReferenceConstraint _annIannotatedTree name_ atts_ _tableIannotatedTree tableAtts_ onUpdate_ onDelete_-                   {-# LINE 4826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ReferenceConstraint _annIoriginalTree name_ atts_ _tableIoriginalTree tableAtts_ onUpdate_ onDelete_-                   {-# LINE 4832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4844 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4850 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4856 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4862 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4868 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4874 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4880 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tableIannotatedTree,_tableIoriginalTree) =-                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ConstraintList -----------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ConstraintList -         originalTree         : ConstraintList -   alternatives:-      alternative Cons:-         child hd             : Constraint -         child tl             : ConstraintList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ConstraintList = [Constraint]--- cata-_sem_ConstraintList :: ConstraintList ->-                      T_ConstraintList-_sem_ConstraintList list =-    (Prelude.foldr _sem_ConstraintList_Cons _sem_ConstraintList_Nil (Prelude.map _sem_Constraint list))--- semantic domain-type T_ConstraintList = Catalog ->-                        TypeCheckFlags ->-                        (Maybe TypeExtra) ->-                        ( ConstraintList,ConstraintList)-data Inh_ConstraintList = Inh_ConstraintList {_cat_Inh_ConstraintList :: Catalog,_flags_Inh_ConstraintList :: TypeCheckFlags,_imCast_Inh_ConstraintList :: (Maybe TypeExtra)}-data Syn_ConstraintList = Syn_ConstraintList {_annotatedTree_Syn_ConstraintList :: ConstraintList,_originalTree_Syn_ConstraintList :: ConstraintList}-_wrap_ConstraintList :: T_ConstraintList ->-                       Inh_ConstraintList ->-                       Syn_ConstraintList-_wrap_ConstraintList sem (Inh_ConstraintList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_ConstraintList _lhsOannotatedTree _lhsOoriginalTree))-_sem_ConstraintList_Cons :: T_Constraint ->-                           T_ConstraintList ->-                           T_ConstraintList-_sem_ConstraintList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ConstraintList-              _lhsOoriginalTree :: ConstraintList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: Constraint-              _hdIoriginalTree :: Constraint-              _tlIannotatedTree :: ConstraintList-              _tlIoriginalTree :: ConstraintList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 4951 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 4957 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 4963 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 4969 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4975 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4981 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 4987 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 4993 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 4999 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5005 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_ConstraintList_Nil :: T_ConstraintList-_sem_ConstraintList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ConstraintList-              _lhsOoriginalTree :: ConstraintList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 5023 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 5029 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5035 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5041 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- FnBody -------------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : FnBody -         originalTree         : FnBody -   alternatives:-      alternative SqlFnBody:-         child ann            : Annotation -         child sts            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative PlpgsqlFnBody:-         child ann            : Annotation -         child blk            : Statement -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data FnBody = SqlFnBody (Annotation) (StatementList)-            | PlpgsqlFnBody (Annotation) (Statement)-            deriving ( Data,Eq,Show,Typeable)--- cata-_sem_FnBody :: FnBody ->-              T_FnBody-_sem_FnBody (SqlFnBody _ann _sts) =-    (_sem_FnBody_SqlFnBody (_sem_Annotation _ann) (_sem_StatementList _sts))-_sem_FnBody (PlpgsqlFnBody _ann _blk) =-    (_sem_FnBody_PlpgsqlFnBody (_sem_Annotation _ann) (_sem_Statement _blk))--- semantic domain-type T_FnBody = Catalog ->-                TypeCheckFlags ->-                (Maybe TypeExtra) ->-                ( FnBody,FnBody)-data Inh_FnBody = Inh_FnBody {_cat_Inh_FnBody :: Catalog,_flags_Inh_FnBody :: TypeCheckFlags,_imCast_Inh_FnBody :: (Maybe TypeExtra)}-data Syn_FnBody = Syn_FnBody {_annotatedTree_Syn_FnBody :: FnBody,_originalTree_Syn_FnBody :: FnBody}-_wrap_FnBody :: T_FnBody ->-               Inh_FnBody ->-               Syn_FnBody-_wrap_FnBody sem (Inh_FnBody _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_FnBody _lhsOannotatedTree _lhsOoriginalTree))-_sem_FnBody_SqlFnBody :: T_Annotation ->-                        T_StatementList ->-                        T_FnBody-_sem_FnBody_SqlFnBody ann_ sts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: FnBody-              _lhsOoriginalTree :: FnBody-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _stsOcat :: Catalog-              _stsOflags :: TypeCheckFlags-              _stsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _stsIannotatedTree :: StatementList-              _stsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 67, column 24)-              _annOtpe =-                  ({-# LINE 67 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 5115 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SqlFnBody _annIannotatedTree _stsIannotatedTree-                   {-# LINE 5121 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SqlFnBody _annIoriginalTree _stsIoriginalTree-                   {-# LINE 5127 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5133 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5139 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5145 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5151 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5163 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5169 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5175 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _stsIannotatedTree,_stsIoriginalTree) =-                  sts_ _stsOcat _stsOflags _stsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_FnBody_PlpgsqlFnBody :: T_Annotation ->-                            T_Statement ->-                            T_FnBody-_sem_FnBody_PlpgsqlFnBody ann_ blk_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: FnBody-              _lhsOoriginalTree :: FnBody-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _blkOcat :: Catalog-              _blkOflags :: TypeCheckFlags-              _blkOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _blkIannotatedTree :: Statement-              _blkIoriginalTree :: Statement-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 66, column 28)-              _annOtpe =-                  ({-# LINE 66 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 5206 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PlpgsqlFnBody _annIannotatedTree _blkIannotatedTree-                   {-# LINE 5212 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PlpgsqlFnBody _annIoriginalTree _blkIoriginalTree-                   {-# LINE 5218 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5224 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5230 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5236 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5242 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5248 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _blkOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5254 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _blkOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5260 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _blkOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5266 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _blkIannotatedTree,_blkIoriginalTree) =-                  blk_ _blkOcat _blkOflags _blkOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- InList -------------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedType         : Maybe TypeExtra-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : InList -         listType             : Either [TypeError] TypeExtra-         originalTree         : InList -   alternatives:-      alternative InList:-         child ann            : Annotation -         child exprs          : ScalarExprList -         visit 0:-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative InQueryExpr:-         child ann            : Annotation -         child sel            : QueryExpr -         visit 0:-            local tpe         : _-            local annotatedTree : _-            local originalTree : _--}-data InList = InList (Annotation) (ScalarExprList)-            | InQueryExpr (Annotation) (QueryExpr)-            deriving ( Data,Eq,Show,Typeable)--- cata-_sem_InList :: InList ->-              T_InList-_sem_InList (InList _ann _exprs) =-    (_sem_InList_InList (_sem_Annotation _ann) (_sem_ScalarExprList _exprs))-_sem_InList (InQueryExpr _ann _sel) =-    (_sem_InList_InQueryExpr (_sem_Annotation _ann) (_sem_QueryExpr _sel))--- semantic domain-type T_InList = Catalog ->-                Environment ->-                Bool ->-                (Maybe TypeExtra) ->-                TypeCheckFlags ->-                (Maybe TypeExtra) ->-                ( InList,(Either [TypeError] TypeExtra),InList)-data Inh_InList = Inh_InList {_cat_Inh_InList :: Catalog,_downEnv_Inh_InList :: Environment,_expectedCast_Inh_InList :: Bool,_expectedType_Inh_InList :: (Maybe TypeExtra),_flags_Inh_InList :: TypeCheckFlags,_imCast_Inh_InList :: (Maybe TypeExtra)}-data Syn_InList = Syn_InList {_annotatedTree_Syn_InList :: InList,_listType_Syn_InList :: (Either [TypeError] TypeExtra),_originalTree_Syn_InList :: InList}-_wrap_InList :: T_InList ->-               Inh_InList ->-               Syn_InList-_wrap_InList sem (Inh_InList _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast-     in  (Syn_InList _lhsOannotatedTree _lhsOlistType _lhsOoriginalTree))-_sem_InList_InList :: T_Annotation ->-                     T_ScalarExprList ->-                     T_InList-_sem_InList_InList ann_ exprs_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOlistType :: (Either [TypeError] TypeExtra)-              _exprsOexpectedTypes :: ([TypeExtra])-              _exprsOexpectedCast :: Bool-              _annOimCast :: (Maybe TypeExtra)-              _exprsOassignmentCastContext :: Bool-              _lhsOannotatedTree :: InList-              _lhsOoriginalTree :: InList-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOtpe :: (Either [TypeError] TypeExtra)-              _exprsOcat :: Catalog-              _exprsOdownEnv :: Environment-              _exprsOflags :: TypeCheckFlags-              _exprsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprsIannotatedTree :: ScalarExprList-              _exprsIoriginalTree :: ScalarExprList-              _exprsIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 219, column 9)-              _tpe =-                  ({-# LINE 219 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Left []-                   {-# LINE 5362 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 681, column 9)-              _lhsOlistType =-                  ({-# LINE 681 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   mapM (maybe (Left []) Right) _exprsIupTypes-                   >>= resolveResultSetTypeExtra _lhsIcat-                   {-# LINE 5369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 683, column 9)-              _exprsOexpectedTypes =-                  ({-# LINE 683 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe [] repeat _lhsIexpectedType-                   {-# LINE 5375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 685, column 9)-              _exprsOexpectedCast =-                  ({-# LINE 685 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5381 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 781, column 12)-              _annOimCast =-                  ({-# LINE 781 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 5387 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 811, column 21)-              _exprsOassignmentCastContext =-                  ({-# LINE 811 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5393 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   InList _annIannotatedTree _exprsIannotatedTree-                   {-# LINE 5399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   InList _annIoriginalTree _exprsIoriginalTree-                   {-# LINE 5405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 5435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprsOdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 5447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprsIannotatedTree,_exprsIoriginalTree,_exprsIupTypes) =-                  exprs_ _exprsOassignmentCastContext _exprsOcat _exprsOdownEnv _exprsOexpectedCast _exprsOexpectedTypes _exprsOflags _exprsOimCast-          in  ( _lhsOannotatedTree,_lhsOlistType,_lhsOoriginalTree)))-_sem_InList_InQueryExpr :: T_Annotation ->-                          T_QueryExpr ->-                          T_InList-_sem_InList_InQueryExpr ann_ sel_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _selOouterDownEnv :: (Maybe Environment)-              _lhsOlistType :: (Either [TypeError] TypeExtra)-              _selOexpectedType :: (Maybe [TypeExtra])-              _annOimCast :: (Maybe TypeExtra)-              _selOassignmentCastContext :: Bool-              _lhsOannotatedTree :: InList-              _lhsOoriginalTree :: InList-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOtpe :: (Either [TypeError] TypeExtra)-              _selOcat :: Catalog-              _selOflags :: TypeCheckFlags-              _selOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _selIannotatedTree :: QueryExpr-              _selIoriginalTree :: QueryExpr-              _selIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 97, column 17)-              _selOouterDownEnv =-                  ({-# LINE 97 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Nothing-                   {-# LINE 5498 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 219, column 9)-              _tpe =-                  ({-# LINE 219 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Left []-                   {-# LINE 5504 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 688, column 9)-              _lhsOlistType =-                  ({-# LINE 688 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   st <- maybe (Left []) Right (map snd <$> _selIupType)-                   case length st of-                             0 -> Left [InternalError-                                        "got subquery with no columns? in inselect"]-                             1 -> Right $ head st-                             _ -> Right $ mkTypeExtra $ AnonymousCompositeType-                                     $ map teType st-                   {-# LINE 5517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 698, column 9)-              _selOexpectedType =-                  ({-# LINE 698 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   liftM (map snd) _selIupType-                   {-# LINE 5523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 782, column 17)-              _annOimCast =-                  ({-# LINE 782 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 5529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 812, column 26)-              _selOassignmentCastContext =-                  ({-# LINE 812 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   InQueryExpr _annIannotatedTree _selIannotatedTree-                   {-# LINE 5541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   InQueryExpr _annIoriginalTree _selIoriginalTree-                   {-# LINE 5547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 5577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =-                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOlistType,_lhsOoriginalTree)))--- JoinExpr -----------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : JoinExpr -         originalTree         : JoinExpr -   alternatives:-      alternative JoinOn:-         child ann            : Annotation -         child expr           : ScalarExpr -         visit 0:-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative JoinUsing:-         child ann            : Annotation -         child x              : {[NameComponent]}-         visit 0:-            local tpe         : _-            local annotatedTree : _-            local originalTree : _--}-data JoinExpr = JoinOn (Annotation) (ScalarExpr)-              | JoinUsing (Annotation) (([NameComponent]))-              deriving ( Data,Eq,Show,Typeable)--- cata-_sem_JoinExpr :: JoinExpr ->-                T_JoinExpr-_sem_JoinExpr (JoinOn _ann _expr) =-    (_sem_JoinExpr_JoinOn (_sem_Annotation _ann) (_sem_ScalarExpr _expr))-_sem_JoinExpr (JoinUsing _ann _x) =-    (_sem_JoinExpr_JoinUsing (_sem_Annotation _ann) _x)--- semantic domain-type T_JoinExpr = Catalog ->-                  Environment ->-                  TypeCheckFlags ->-                  (Maybe TypeExtra) ->-                  ( JoinExpr,JoinExpr)-data Inh_JoinExpr = Inh_JoinExpr {_cat_Inh_JoinExpr :: Catalog,_downEnv_Inh_JoinExpr :: Environment,_flags_Inh_JoinExpr :: TypeCheckFlags,_imCast_Inh_JoinExpr :: (Maybe TypeExtra)}-data Syn_JoinExpr = Syn_JoinExpr {_annotatedTree_Syn_JoinExpr :: JoinExpr,_originalTree_Syn_JoinExpr :: JoinExpr}-_wrap_JoinExpr :: T_JoinExpr ->-                 Inh_JoinExpr ->-                 Syn_JoinExpr-_wrap_JoinExpr sem (Inh_JoinExpr _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast-     in  (Syn_JoinExpr _lhsOannotatedTree _lhsOoriginalTree))-_sem_JoinExpr_JoinOn :: T_Annotation ->-                       T_ScalarExpr ->-                       T_JoinExpr-_sem_JoinExpr_JoinOn ann_ expr_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _exprOodbcFunction :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOexpectedCast :: Bool-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: JoinExpr-              _lhsOoriginalTree :: JoinExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOcat :: Catalog-              _exprOdownEnv :: Environment-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 223, column 9)-              _tpe =-                  ({-# LINE 223 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Left []-                   {-# LINE 5685 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 140, column 14)-              _exprOodbcFunction =-                  ({-# LINE 140 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5691 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 745, column 7)-              _exprOexpectedType =-                  ({-# LINE 745 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   bt <- ansiTypeNameToDialect (tcfDialect _lhsIflags) "boolean"-                   Just $ TypeExtra (ScalarType bt) Nothing Nothing-                        $ maybe False teNullable _exprIupType-                   {-# LINE 5700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 749, column 7)-              _exprOexpectedCast =-                  ({-# LINE 749 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 813, column 23)-              _exprOassignmentCastContext =-                  ({-# LINE 813 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5712 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   JoinOn _annIannotatedTree _exprIannotatedTree-                   {-# LINE 5718 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   JoinOn _annIoriginalTree _exprIoriginalTree-                   {-# LINE 5724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5730 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5736 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5754 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 5760 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 5772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5784 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_JoinExpr_JoinUsing :: T_Annotation ->-                          ([NameComponent]) ->-                          T_JoinExpr-_sem_JoinExpr_JoinUsing ann_ x_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: JoinExpr-              _lhsOoriginalTree :: JoinExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 223, column 9)-              _tpe =-                  ({-# LINE 223 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Left []-                   {-# LINE 5811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   JoinUsing _annIannotatedTree x_-                   {-# LINE 5817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   JoinUsing _annIoriginalTree x_-                   {-# LINE 5823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5829 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5835 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5841 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5847 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5853 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 5859 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- MaybeBoolExpr ------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : MaybeBoolExpr -         originalTree         : MaybeBoolExpr -   alternatives:-      alternative Just:-         child just           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nothing:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type MaybeBoolExpr = Maybe (ScalarExpr)--- cata-_sem_MaybeBoolExpr :: MaybeBoolExpr ->-                     T_MaybeBoolExpr-_sem_MaybeBoolExpr (Prelude.Just x) =-    (_sem_MaybeBoolExpr_Just (_sem_ScalarExpr x))-_sem_MaybeBoolExpr Prelude.Nothing =-    _sem_MaybeBoolExpr_Nothing--- semantic domain-type T_MaybeBoolExpr = Catalog ->-                       Environment ->-                       TypeCheckFlags ->-                       (Maybe TypeExtra) ->-                       ( MaybeBoolExpr,MaybeBoolExpr)-data Inh_MaybeBoolExpr = Inh_MaybeBoolExpr {_cat_Inh_MaybeBoolExpr :: Catalog,_downEnv_Inh_MaybeBoolExpr :: Environment,_flags_Inh_MaybeBoolExpr :: TypeCheckFlags,_imCast_Inh_MaybeBoolExpr :: (Maybe TypeExtra)}-data Syn_MaybeBoolExpr = Syn_MaybeBoolExpr {_annotatedTree_Syn_MaybeBoolExpr :: MaybeBoolExpr,_originalTree_Syn_MaybeBoolExpr :: MaybeBoolExpr}-_wrap_MaybeBoolExpr :: T_MaybeBoolExpr ->-                      Inh_MaybeBoolExpr ->-                      Syn_MaybeBoolExpr-_wrap_MaybeBoolExpr sem (Inh_MaybeBoolExpr _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast-     in  (Syn_MaybeBoolExpr _lhsOannotatedTree _lhsOoriginalTree))-_sem_MaybeBoolExpr_Just :: T_ScalarExpr ->-                          T_MaybeBoolExpr-_sem_MaybeBoolExpr_Just just_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _justOodbcFunction :: Bool-              _justOexpectedType :: (Maybe TypeExtra)-              _justOexpectedCast :: Bool-              _justOassignmentCastContext :: Bool-              _lhsOannotatedTree :: MaybeBoolExpr-              _lhsOoriginalTree :: MaybeBoolExpr-              _justOcat :: Catalog-              _justOdownEnv :: Environment-              _justOflags :: TypeCheckFlags-              _justOimCast :: (Maybe TypeExtra)-              _justIannotatedTree :: ScalarExpr-              _justIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _justIoriginalTree :: ScalarExpr-              _justIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 143, column 12)-              _justOodbcFunction =-                  ({-# LINE 143 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5933 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 761, column 7)-              _justOexpectedType =-                  ({-# LINE 761 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 5939 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 762, column 7)-              _justOexpectedCast =-                  ({-# LINE 762 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5945 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 814, column 26)-              _justOassignmentCastContext =-                  ({-# LINE 814 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 5951 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIannotatedTree-                   {-# LINE 5957 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIoriginalTree-                   {-# LINE 5963 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 5969 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 5975 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 5981 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 5987 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 5993 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 5999 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _justIannotatedTree,_justIcolExprs,_justIoriginalTree,_justIupType) =-                  just_ _justOassignmentCastContext _justOcat _justOdownEnv _justOexpectedCast _justOexpectedType _justOflags _justOimCast _justOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_MaybeBoolExpr_Nothing :: T_MaybeBoolExpr-_sem_MaybeBoolExpr_Nothing =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: MaybeBoolExpr-              _lhsOoriginalTree :: MaybeBoolExpr-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- MaybeNameComponentList ---------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : MaybeNameComponentList -         originalTree         : MaybeNameComponentList -   alternatives:-      alternative Just:-         child just           : NameComponentList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nothing:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type MaybeNameComponentList = Maybe (NameComponentList)--- cata-_sem_MaybeNameComponentList :: MaybeNameComponentList ->-                              T_MaybeNameComponentList-_sem_MaybeNameComponentList (Prelude.Just x) =-    (_sem_MaybeNameComponentList_Just (_sem_NameComponentList x))-_sem_MaybeNameComponentList Prelude.Nothing =-    _sem_MaybeNameComponentList_Nothing--- semantic domain-type T_MaybeNameComponentList = Catalog ->-                                TypeCheckFlags ->-                                (Maybe TypeExtra) ->-                                ( MaybeNameComponentList,MaybeNameComponentList)-data Inh_MaybeNameComponentList = Inh_MaybeNameComponentList {_cat_Inh_MaybeNameComponentList :: Catalog,_flags_Inh_MaybeNameComponentList :: TypeCheckFlags,_imCast_Inh_MaybeNameComponentList :: (Maybe TypeExtra)}-data Syn_MaybeNameComponentList = Syn_MaybeNameComponentList {_annotatedTree_Syn_MaybeNameComponentList :: MaybeNameComponentList,_originalTree_Syn_MaybeNameComponentList :: MaybeNameComponentList}-_wrap_MaybeNameComponentList :: T_MaybeNameComponentList ->-                               Inh_MaybeNameComponentList ->-                               Syn_MaybeNameComponentList-_wrap_MaybeNameComponentList sem (Inh_MaybeNameComponentList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_MaybeNameComponentList _lhsOannotatedTree _lhsOoriginalTree))-_sem_MaybeNameComponentList_Just :: T_NameComponentList ->-                                   T_MaybeNameComponentList-_sem_MaybeNameComponentList_Just just_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: MaybeNameComponentList-              _lhsOoriginalTree :: MaybeNameComponentList-              _justOcat :: Catalog-              _justOflags :: TypeCheckFlags-              _justOimCast :: (Maybe TypeExtra)-              _justIannotatedTree :: NameComponentList-              _justIoriginalTree :: NameComponentList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIannotatedTree-                   {-# LINE 6096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIoriginalTree-                   {-# LINE 6102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6114 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 6120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 6126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 6132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _justIannotatedTree,_justIoriginalTree) =-                  just_ _justOcat _justOflags _justOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_MaybeNameComponentList_Nothing :: T_MaybeNameComponentList-_sem_MaybeNameComponentList_Nothing =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: MaybeNameComponentList-              _lhsOoriginalTree :: MaybeNameComponentList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6148 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6154 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6160 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6166 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- MaybeScalarExpr ----------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedType         : Maybe TypeExtra-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : MaybeScalarExpr -         originalTree         : MaybeScalarExpr -         upType               : Maybe TypeExtra-   alternatives:-      alternative Just:-         child just           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nothing:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type MaybeScalarExpr = Maybe (ScalarExpr)--- cata-_sem_MaybeScalarExpr :: MaybeScalarExpr ->-                       T_MaybeScalarExpr-_sem_MaybeScalarExpr (Prelude.Just x) =-    (_sem_MaybeScalarExpr_Just (_sem_ScalarExpr x))-_sem_MaybeScalarExpr Prelude.Nothing =-    _sem_MaybeScalarExpr_Nothing--- semantic domain-type T_MaybeScalarExpr = Bool ->-                         Catalog ->-                         Environment ->-                         Bool ->-                         (Maybe TypeExtra) ->-                         TypeCheckFlags ->-                         (Maybe TypeExtra) ->-                         ( MaybeScalarExpr,MaybeScalarExpr,(Maybe TypeExtra))-data Inh_MaybeScalarExpr = Inh_MaybeScalarExpr {_assignmentCastContext_Inh_MaybeScalarExpr :: Bool,_cat_Inh_MaybeScalarExpr :: Catalog,_downEnv_Inh_MaybeScalarExpr :: Environment,_expectedCast_Inh_MaybeScalarExpr :: Bool,_expectedType_Inh_MaybeScalarExpr :: (Maybe TypeExtra),_flags_Inh_MaybeScalarExpr :: TypeCheckFlags,_imCast_Inh_MaybeScalarExpr :: (Maybe TypeExtra)}-data Syn_MaybeScalarExpr = Syn_MaybeScalarExpr {_annotatedTree_Syn_MaybeScalarExpr :: MaybeScalarExpr,_originalTree_Syn_MaybeScalarExpr :: MaybeScalarExpr,_upType_Syn_MaybeScalarExpr :: (Maybe TypeExtra)}-_wrap_MaybeScalarExpr :: T_MaybeScalarExpr ->-                        Inh_MaybeScalarExpr ->-                        Syn_MaybeScalarExpr-_wrap_MaybeScalarExpr sem (Inh_MaybeScalarExpr _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast-     in  (Syn_MaybeScalarExpr _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))-_sem_MaybeScalarExpr_Just :: T_ScalarExpr ->-                            T_MaybeScalarExpr-_sem_MaybeScalarExpr_Just just_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _justOodbcFunction :: Bool-              _lhsOannotatedTree :: MaybeScalarExpr-              _lhsOoriginalTree :: MaybeScalarExpr-              _lhsOupType :: (Maybe TypeExtra)-              _justOassignmentCastContext :: Bool-              _justOcat :: Catalog-              _justOdownEnv :: Environment-              _justOexpectedCast :: Bool-              _justOexpectedType :: (Maybe TypeExtra)-              _justOflags :: TypeCheckFlags-              _justOimCast :: (Maybe TypeExtra)-              _justIannotatedTree :: ScalarExpr-              _justIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _justIoriginalTree :: ScalarExpr-              _justIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 146, column 12)-              _justOodbcFunction =-                  ({-# LINE 146 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 6249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIannotatedTree-                   {-# LINE 6255 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIoriginalTree-                   {-# LINE 6261 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6273 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOupType =-                  ({-# LINE 109 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _justIupType-                   {-# LINE 6279 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 6285 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 6291 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 6297 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOexpectedCast =-                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 6303 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOexpectedType =-                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 6309 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 6315 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 6321 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _justIannotatedTree,_justIcolExprs,_justIoriginalTree,_justIupType) =-                  just_ _justOassignmentCastContext _justOcat _justOdownEnv _justOexpectedCast _justOexpectedType _justOflags _justOimCast _justOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))-_sem_MaybeScalarExpr_Nothing :: T_MaybeScalarExpr-_sem_MaybeScalarExpr_Nothing =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOupType :: (Maybe TypeExtra)-              _lhsOannotatedTree :: MaybeScalarExpr-              _lhsOoriginalTree :: MaybeScalarExpr-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 120, column 15)-              _lhsOupType =-                  ({-# LINE 120 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 6342 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6348 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6354 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))--- MaybeSelectList ----------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : MaybeSelectList -         originalTree         : MaybeSelectList -   alternatives:-      alternative Just:-         child just           : SelectList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nothing:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type MaybeSelectList = Maybe (SelectList)--- cata-_sem_MaybeSelectList :: MaybeSelectList ->-                       T_MaybeSelectList-_sem_MaybeSelectList (Prelude.Just x) =-    (_sem_MaybeSelectList_Just (_sem_SelectList x))-_sem_MaybeSelectList Prelude.Nothing =-    _sem_MaybeSelectList_Nothing--- semantic domain-type T_MaybeSelectList = Catalog ->-                         TypeCheckFlags ->-                         (Maybe TypeExtra) ->-                         ( MaybeSelectList,MaybeSelectList)-data Inh_MaybeSelectList = Inh_MaybeSelectList {_cat_Inh_MaybeSelectList :: Catalog,_flags_Inh_MaybeSelectList :: TypeCheckFlags,_imCast_Inh_MaybeSelectList :: (Maybe TypeExtra)}-data Syn_MaybeSelectList = Syn_MaybeSelectList {_annotatedTree_Syn_MaybeSelectList :: MaybeSelectList,_originalTree_Syn_MaybeSelectList :: MaybeSelectList}-_wrap_MaybeSelectList :: T_MaybeSelectList ->-                        Inh_MaybeSelectList ->-                        Syn_MaybeSelectList-_wrap_MaybeSelectList sem (Inh_MaybeSelectList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_MaybeSelectList _lhsOannotatedTree _lhsOoriginalTree))-_sem_MaybeSelectList_Just :: T_SelectList ->-                            T_MaybeSelectList-_sem_MaybeSelectList_Just just_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _justOdownEnv :: Environment-              _justOexpectedCast :: Bool-              _justOexpectedType :: (Maybe [TypeExtra])-              _justOassignmentCastContext :: Bool-              _lhsOannotatedTree :: MaybeSelectList-              _lhsOoriginalTree :: MaybeSelectList-              _justOcat :: Catalog-              _justOflags :: TypeCheckFlags-              _justOimCast :: (Maybe TypeExtra)-              _justIannotatedTree :: SelectList-              _justIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _justIoriginalTree :: SelectList-              _justIupEnv :: Environment-              _justIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 68, column 28)-              _justOdownEnv =-                  ({-# LINE 68 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 6435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 69, column 28)-              _justOexpectedCast =-                  ({-# LINE 69 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 6441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 70, column 28)-              _justOexpectedType =-                  ({-# LINE 70 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 6447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 815, column 28)-              _justOassignmentCastContext =-                  ({-# LINE 815 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 6453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIannotatedTree-                   {-# LINE 6459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIoriginalTree-                   {-# LINE 6465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 6483 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 6489 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 6495 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _justIannotatedTree,_justIcolExprs,_justIoriginalTree,_justIupEnv,_justIupType) =-                  just_ _justOassignmentCastContext _justOcat _justOdownEnv _justOexpectedCast _justOexpectedType _justOflags _justOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_MaybeSelectList_Nothing :: T_MaybeSelectList-_sem_MaybeSelectList_Nothing =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: MaybeSelectList-              _lhsOoriginalTree :: MaybeSelectList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- MaybeTablePartitionDef ---------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : MaybeTablePartitionDef -         originalTree         : MaybeTablePartitionDef -   alternatives:-      alternative Just:-         child just           : TablePartitionDef -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nothing:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type MaybeTablePartitionDef = Maybe (TablePartitionDef)--- cata-_sem_MaybeTablePartitionDef :: MaybeTablePartitionDef ->-                              T_MaybeTablePartitionDef-_sem_MaybeTablePartitionDef (Prelude.Just x) =-    (_sem_MaybeTablePartitionDef_Just (_sem_TablePartitionDef x))-_sem_MaybeTablePartitionDef Prelude.Nothing =-    _sem_MaybeTablePartitionDef_Nothing--- semantic domain-type T_MaybeTablePartitionDef = Catalog ->-                                TypeCheckFlags ->-                                (Maybe TypeExtra) ->-                                ( MaybeTablePartitionDef,MaybeTablePartitionDef)-data Inh_MaybeTablePartitionDef = Inh_MaybeTablePartitionDef {_cat_Inh_MaybeTablePartitionDef :: Catalog,_flags_Inh_MaybeTablePartitionDef :: TypeCheckFlags,_imCast_Inh_MaybeTablePartitionDef :: (Maybe TypeExtra)}-data Syn_MaybeTablePartitionDef = Syn_MaybeTablePartitionDef {_annotatedTree_Syn_MaybeTablePartitionDef :: MaybeTablePartitionDef,_originalTree_Syn_MaybeTablePartitionDef :: MaybeTablePartitionDef}-_wrap_MaybeTablePartitionDef :: T_MaybeTablePartitionDef ->-                               Inh_MaybeTablePartitionDef ->-                               Syn_MaybeTablePartitionDef-_wrap_MaybeTablePartitionDef sem (Inh_MaybeTablePartitionDef _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_MaybeTablePartitionDef _lhsOannotatedTree _lhsOoriginalTree))-_sem_MaybeTablePartitionDef_Just :: T_TablePartitionDef ->-                                   T_MaybeTablePartitionDef-_sem_MaybeTablePartitionDef_Just just_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: MaybeTablePartitionDef-              _lhsOoriginalTree :: MaybeTablePartitionDef-              _justOcat :: Catalog-              _justOflags :: TypeCheckFlags-              _justOimCast :: (Maybe TypeExtra)-              _justIannotatedTree :: TablePartitionDef-              _justIoriginalTree :: TablePartitionDef-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIannotatedTree-                   {-# LINE 6591 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIoriginalTree-                   {-# LINE 6597 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6603 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6609 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 6615 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 6621 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 6627 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _justIannotatedTree,_justIoriginalTree) =-                  just_ _justOcat _justOflags _justOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_MaybeTablePartitionDef_Nothing :: T_MaybeTablePartitionDef-_sem_MaybeTablePartitionDef_Nothing =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: MaybeTablePartitionDef-              _lhsOoriginalTree :: MaybeTablePartitionDef-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 6649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6655 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6661 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- Name ---------------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-         tpe                  : Either [TypeError] TypeExtra-      synthesized attributes:-         annotatedTree        : Name -         originalTree         : Name -   alternatives:-      alternative Name:-         child ann            : Annotation -         child is             : {[NameComponent]}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AntiName:-         child string         : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data Name = Name (Annotation) (([NameComponent]))-          | AntiName (String)-          deriving ( Data,Eq,Show,Typeable)--- cata-_sem_Name :: Name ->-            T_Name-_sem_Name (Name _ann _is) =-    (_sem_Name_Name (_sem_Annotation _ann) _is)-_sem_Name (AntiName _string) =-    (_sem_Name_AntiName _string)--- semantic domain-type T_Name = Catalog ->-              TypeCheckFlags ->-              (Maybe TypeExtra) ->-              (Either [TypeError] TypeExtra) ->-              ( Name,Name)-data Inh_Name = Inh_Name {_cat_Inh_Name :: Catalog,_flags_Inh_Name :: TypeCheckFlags,_imCast_Inh_Name :: (Maybe TypeExtra),_tpe_Inh_Name :: (Either [TypeError] TypeExtra)}-data Syn_Name = Syn_Name {_annotatedTree_Syn_Name :: Name,_originalTree_Syn_Name :: Name}-_wrap_Name :: T_Name ->-             Inh_Name ->-             Syn_Name-_wrap_Name sem (Inh_Name _lhsIcat _lhsIflags _lhsIimCast _lhsItpe) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast _lhsItpe-     in  (Syn_Name _lhsOannotatedTree _lhsOoriginalTree))-_sem_Name_Name :: T_Annotation ->-                 ([NameComponent]) ->-                 T_Name-_sem_Name_Name ann_ is_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast-       _lhsItpe ->-         (let _lhsOannotatedTree :: Name-              _lhsOoriginalTree :: Name-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Name _annIannotatedTree is_-                   {-# LINE 6732 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Name _annIoriginalTree is_-                   {-# LINE 6738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6744 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6750 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 6756 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 6762 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 6768 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsItpe-                   {-# LINE 6774 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Name_AntiName :: String ->-                     T_Name-_sem_Name_AntiName string_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast-       _lhsItpe ->-         (let _lhsOannotatedTree :: Name-              _lhsOoriginalTree :: Name-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AntiName string_-                   {-# LINE 6792 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AntiName string_-                   {-# LINE 6798 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6804 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6810 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- NameComponentList --------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : NameComponentList -         originalTree         : NameComponentList -   alternatives:-      alternative Cons:-         child hd             : {NameComponent}-         child tl             : NameComponentList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type NameComponentList = [(NameComponent)]--- cata-_sem_NameComponentList :: NameComponentList ->-                         T_NameComponentList-_sem_NameComponentList list =-    (Prelude.foldr _sem_NameComponentList_Cons _sem_NameComponentList_Nil list)--- semantic domain-type T_NameComponentList = Catalog ->-                           TypeCheckFlags ->-                           (Maybe TypeExtra) ->-                           ( NameComponentList,NameComponentList)-data Inh_NameComponentList = Inh_NameComponentList {_cat_Inh_NameComponentList :: Catalog,_flags_Inh_NameComponentList :: TypeCheckFlags,_imCast_Inh_NameComponentList :: (Maybe TypeExtra)}-data Syn_NameComponentList = Syn_NameComponentList {_annotatedTree_Syn_NameComponentList :: NameComponentList,_originalTree_Syn_NameComponentList :: NameComponentList}-_wrap_NameComponentList :: T_NameComponentList ->-                          Inh_NameComponentList ->-                          Syn_NameComponentList-_wrap_NameComponentList sem (Inh_NameComponentList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_NameComponentList _lhsOannotatedTree _lhsOoriginalTree))-_sem_NameComponentList_Cons :: NameComponent ->-                              T_NameComponentList ->-                              T_NameComponentList-_sem_NameComponentList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: NameComponentList-              _lhsOoriginalTree :: NameComponentList-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _tlIannotatedTree :: NameComponentList-              _tlIoriginalTree :: NameComponentList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) hd_ _tlIannotatedTree-                   {-# LINE 6872 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) hd_ _tlIoriginalTree-                   {-# LINE 6878 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6884 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6890 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 6896 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 6902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 6908 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_NameComponentList_Nil :: T_NameComponentList-_sem_NameComponentList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: NameComponentList-              _lhsOoriginalTree :: NameComponentList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 6924 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 6930 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 6936 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 6942 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- NameTypeNameListPair -----------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : NameTypeNameListPair -         originalTree         : NameTypeNameListPair -   alternatives:-      alternative Tuple:-         child x1             : Name -         child x2             : TypeNameList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type NameTypeNameListPair = ( Name,TypeNameList)--- cata-_sem_NameTypeNameListPair :: NameTypeNameListPair ->-                            T_NameTypeNameListPair-_sem_NameTypeNameListPair ( x1,x2) =-    (_sem_NameTypeNameListPair_Tuple (_sem_Name x1) (_sem_TypeNameList x2))--- semantic domain-type T_NameTypeNameListPair = Catalog ->-                              TypeCheckFlags ->-                              (Maybe TypeExtra) ->-                              ( NameTypeNameListPair,NameTypeNameListPair)-data Inh_NameTypeNameListPair = Inh_NameTypeNameListPair {_cat_Inh_NameTypeNameListPair :: Catalog,_flags_Inh_NameTypeNameListPair :: TypeCheckFlags,_imCast_Inh_NameTypeNameListPair :: (Maybe TypeExtra)}-data Syn_NameTypeNameListPair = Syn_NameTypeNameListPair {_annotatedTree_Syn_NameTypeNameListPair :: NameTypeNameListPair,_originalTree_Syn_NameTypeNameListPair :: NameTypeNameListPair}-_wrap_NameTypeNameListPair :: T_NameTypeNameListPair ->-                             Inh_NameTypeNameListPair ->-                             Syn_NameTypeNameListPair-_wrap_NameTypeNameListPair sem (Inh_NameTypeNameListPair _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_NameTypeNameListPair _lhsOannotatedTree _lhsOoriginalTree))-_sem_NameTypeNameListPair_Tuple :: T_Name ->-                                  T_TypeNameList ->-                                  T_NameTypeNameListPair-_sem_NameTypeNameListPair_Tuple x1_ x2_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _x1Otpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: NameTypeNameListPair-              _lhsOoriginalTree :: NameTypeNameListPair-              _x1Ocat :: Catalog-              _x1Oflags :: TypeCheckFlags-              _x1OimCast :: (Maybe TypeExtra)-              _x2Ocat :: Catalog-              _x2Oflags :: TypeCheckFlags-              _x2OimCast :: (Maybe TypeExtra)-              _x1IannotatedTree :: Name-              _x1IoriginalTree :: Name-              _x2IannotatedTree :: TypeNameList-              _x2IoriginalTree :: TypeNameList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 71, column 34)-              _x1Otpe =-                  ({-# LINE 71 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 7006 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IannotatedTree,_x2IannotatedTree)-                   {-# LINE 7012 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IoriginalTree,_x2IoriginalTree)-                   {-# LINE 7018 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7024 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7030 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7036 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7042 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7048 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7054 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7060 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7066 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _x1IannotatedTree,_x1IoriginalTree) =-                  x1_ _x1Ocat _x1Oflags _x1OimCast _x1Otpe-              ( _x2IannotatedTree,_x2IoriginalTree) =-                  x2_ _x2Ocat _x2Oflags _x2OimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- NameTypeNameListPairList -------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : NameTypeNameListPairList -         originalTree         : NameTypeNameListPairList -   alternatives:-      alternative Cons:-         child hd             : NameTypeNameListPair -         child tl             : NameTypeNameListPairList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type NameTypeNameListPairList = [NameTypeNameListPair]--- cata-_sem_NameTypeNameListPairList :: NameTypeNameListPairList ->-                                T_NameTypeNameListPairList-_sem_NameTypeNameListPairList list =-    (Prelude.foldr _sem_NameTypeNameListPairList_Cons _sem_NameTypeNameListPairList_Nil (Prelude.map _sem_NameTypeNameListPair list))--- semantic domain-type T_NameTypeNameListPairList = Catalog ->-                                  TypeCheckFlags ->-                                  (Maybe TypeExtra) ->-                                  ( NameTypeNameListPairList,NameTypeNameListPairList)-data Inh_NameTypeNameListPairList = Inh_NameTypeNameListPairList {_cat_Inh_NameTypeNameListPairList :: Catalog,_flags_Inh_NameTypeNameListPairList :: TypeCheckFlags,_imCast_Inh_NameTypeNameListPairList :: (Maybe TypeExtra)}-data Syn_NameTypeNameListPairList = Syn_NameTypeNameListPairList {_annotatedTree_Syn_NameTypeNameListPairList :: NameTypeNameListPairList,_originalTree_Syn_NameTypeNameListPairList :: NameTypeNameListPairList}-_wrap_NameTypeNameListPairList :: T_NameTypeNameListPairList ->-                                 Inh_NameTypeNameListPairList ->-                                 Syn_NameTypeNameListPairList-_wrap_NameTypeNameListPairList sem (Inh_NameTypeNameListPairList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_NameTypeNameListPairList _lhsOannotatedTree _lhsOoriginalTree))-_sem_NameTypeNameListPairList_Cons :: T_NameTypeNameListPair ->-                                     T_NameTypeNameListPairList ->-                                     T_NameTypeNameListPairList-_sem_NameTypeNameListPairList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: NameTypeNameListPairList-              _lhsOoriginalTree :: NameTypeNameListPairList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: NameTypeNameListPair-              _hdIoriginalTree :: NameTypeNameListPair-              _tlIannotatedTree :: NameTypeNameListPairList-              _tlIoriginalTree :: NameTypeNameListPairList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 7137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 7143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7161 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7167 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7179 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7185 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7191 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_NameTypeNameListPairList_Nil :: T_NameTypeNameListPairList-_sem_NameTypeNameListPairList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: NameTypeNameListPairList-              _lhsOoriginalTree :: NameTypeNameListPairList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 7209 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 7215 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7221 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7227 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- OnExpr -------------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : OnExpr -         originalTree         : OnExpr -   alternatives:-      alternative Just:-         child just           : JoinExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nothing:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type OnExpr = Maybe (JoinExpr)--- cata-_sem_OnExpr :: OnExpr ->-              T_OnExpr-_sem_OnExpr (Prelude.Just x) =-    (_sem_OnExpr_Just (_sem_JoinExpr x))-_sem_OnExpr Prelude.Nothing =-    _sem_OnExpr_Nothing--- semantic domain-type T_OnExpr = Catalog ->-                Environment ->-                TypeCheckFlags ->-                (Maybe TypeExtra) ->-                ( OnExpr,OnExpr)-data Inh_OnExpr = Inh_OnExpr {_cat_Inh_OnExpr :: Catalog,_downEnv_Inh_OnExpr :: Environment,_flags_Inh_OnExpr :: TypeCheckFlags,_imCast_Inh_OnExpr :: (Maybe TypeExtra)}-data Syn_OnExpr = Syn_OnExpr {_annotatedTree_Syn_OnExpr :: OnExpr,_originalTree_Syn_OnExpr :: OnExpr}-_wrap_OnExpr :: T_OnExpr ->-               Inh_OnExpr ->-               Syn_OnExpr-_wrap_OnExpr sem (Inh_OnExpr _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast-     in  (Syn_OnExpr _lhsOannotatedTree _lhsOoriginalTree))-_sem_OnExpr_Just :: T_JoinExpr ->-                   T_OnExpr-_sem_OnExpr_Just just_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: OnExpr-              _lhsOoriginalTree :: OnExpr-              _justOcat :: Catalog-              _justOdownEnv :: Environment-              _justOflags :: TypeCheckFlags-              _justOimCast :: (Maybe TypeExtra)-              _justIannotatedTree :: JoinExpr-              _justIoriginalTree :: JoinExpr-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIannotatedTree-                   {-# LINE 7293 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Just _justIoriginalTree-                   {-# LINE 7299 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7317 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOdownEnv =-                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 7323 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7329 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _justOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7335 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _justIannotatedTree,_justIoriginalTree) =-                  just_ _justOcat _justOdownEnv _justOflags _justOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_OnExpr_Nothing :: T_OnExpr-_sem_OnExpr_Nothing =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: OnExpr-              _lhsOoriginalTree :: OnExpr-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 7352 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 7358 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7364 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7370 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ParamDef -----------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ParamDef -         originalTree         : ParamDef -   alternatives:-      alternative ParamDef:-         child ann            : Annotation -         child name           : {NameComponent}-         child typ            : TypeName -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ParamDefTp:-         child ann            : Annotation -         child typ            : TypeName -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data ParamDef = ParamDef (Annotation) (NameComponent) (TypeName)-              | ParamDefTp (Annotation) (TypeName)-              deriving ( Data,Eq,Show,Typeable)--- cata-_sem_ParamDef :: ParamDef ->-                T_ParamDef-_sem_ParamDef (ParamDef _ann _name _typ) =-    (_sem_ParamDef_ParamDef (_sem_Annotation _ann) _name (_sem_TypeName _typ))-_sem_ParamDef (ParamDefTp _ann _typ) =-    (_sem_ParamDef_ParamDefTp (_sem_Annotation _ann) (_sem_TypeName _typ))--- semantic domain-type T_ParamDef = Catalog ->-                  TypeCheckFlags ->-                  (Maybe TypeExtra) ->-                  ( ParamDef,ParamDef)-data Inh_ParamDef = Inh_ParamDef {_cat_Inh_ParamDef :: Catalog,_flags_Inh_ParamDef :: TypeCheckFlags,_imCast_Inh_ParamDef :: (Maybe TypeExtra)}-data Syn_ParamDef = Syn_ParamDef {_annotatedTree_Syn_ParamDef :: ParamDef,_originalTree_Syn_ParamDef :: ParamDef}-_wrap_ParamDef :: T_ParamDef ->-                 Inh_ParamDef ->-                 Syn_ParamDef-_wrap_ParamDef sem (Inh_ParamDef _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_ParamDef _lhsOannotatedTree _lhsOoriginalTree))-_sem_ParamDef_ParamDef :: T_Annotation ->-                         NameComponent ->-                         T_TypeName ->-                         T_ParamDef-_sem_ParamDef_ParamDef ann_ name_ typ_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: ParamDef-              _lhsOoriginalTree :: ParamDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 72, column 25)-              _annOtpe =-                  ({-# LINE 72 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 7447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ParamDef _annIannotatedTree name_ _typIannotatedTree-                   {-# LINE 7453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ParamDef _annIoriginalTree name_ _typIoriginalTree-                   {-# LINE 7459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7483 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7489 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7495 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7501 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7507 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_ParamDef_ParamDefTp :: T_Annotation ->-                           T_TypeName ->-                           T_ParamDef-_sem_ParamDef_ParamDefTp ann_ typ_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: ParamDef-              _lhsOoriginalTree :: ParamDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 73, column 27)-              _annOtpe =-                  ({-# LINE 73 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 7539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ParamDefTp _annIannotatedTree _typIannotatedTree-                   {-# LINE 7545 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ParamDefTp _annIoriginalTree _typIoriginalTree-                   {-# LINE 7551 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7563 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7569 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7575 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7581 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7587 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7593 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7599 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ParamDefList -------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ParamDefList -         originalTree         : ParamDefList -   alternatives:-      alternative Cons:-         child hd             : ParamDef -         child tl             : ParamDefList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ParamDefList = [ParamDef]--- cata-_sem_ParamDefList :: ParamDefList ->-                    T_ParamDefList-_sem_ParamDefList list =-    (Prelude.foldr _sem_ParamDefList_Cons _sem_ParamDefList_Nil (Prelude.map _sem_ParamDef list))--- semantic domain-type T_ParamDefList = Catalog ->-                      TypeCheckFlags ->-                      (Maybe TypeExtra) ->-                      ( ParamDefList,ParamDefList)-data Inh_ParamDefList = Inh_ParamDefList {_cat_Inh_ParamDefList :: Catalog,_flags_Inh_ParamDefList :: TypeCheckFlags,_imCast_Inh_ParamDefList :: (Maybe TypeExtra)}-data Syn_ParamDefList = Syn_ParamDefList {_annotatedTree_Syn_ParamDefList :: ParamDefList,_originalTree_Syn_ParamDefList :: ParamDefList}-_wrap_ParamDefList :: T_ParamDefList ->-                     Inh_ParamDefList ->-                     Syn_ParamDefList-_wrap_ParamDefList sem (Inh_ParamDefList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_ParamDefList _lhsOannotatedTree _lhsOoriginalTree))-_sem_ParamDefList_Cons :: T_ParamDef ->-                         T_ParamDefList ->-                         T_ParamDefList-_sem_ParamDefList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ParamDefList-              _lhsOoriginalTree :: ParamDefList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: ParamDef-              _hdIoriginalTree :: ParamDef-              _tlIannotatedTree :: ParamDefList-              _tlIoriginalTree :: ParamDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 7670 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 7676 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7682 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7688 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7694 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 7712 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 7718 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 7724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_ParamDefList_Nil :: T_ParamDefList-_sem_ParamDefList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ParamDefList-              _lhsOoriginalTree :: ParamDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 7742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 7748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 7754 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 7760 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- QueryExpr ----------------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         expectedType         : Maybe [TypeExtra]-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-         outerDownEnv         : Maybe Environment-      synthesized attributes:-         annotatedTree        : QueryExpr -         originalTree         : QueryExpr -         upType               : Maybe [(Text,TypeExtra)]-   alternatives:-      alternative Select:-         child ann            : Annotation -         child selDistinct    : {Distinct}-         child selSelectList  : SelectList -         child selTref        : TableRefList -         child selWhere       : MaybeBoolExpr -         child selGroupBy     : ScalarExprList -         child selHaving      : MaybeBoolExpr -         child selOrderBy     : ScalarExprDirectionPairList -         child selLimit       : MaybeScalarExpr -         child selOffset      : MaybeScalarExpr -         child selOption      : {[QueryHint]}-         visit 0:-            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}-            local tpe         : {Either [TypeError] TypeExtra}-            local selGroupBy  : _-            local annotatedTree : _-            local originalTree : _-      alternative CombineQueryExpr:-         child ann            : Annotation -         child cqType         : {CombineType}-         child cqQe0          : QueryExpr -         child cqQe1          : QueryExpr -         visit 0:-            local tpe         : {Either [TypeError] TypeExtra}-            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}-            local annotatedTree : _-            local originalTree : _-      alternative Values:-         child ann            : Annotation -         child qeValues       : ScalarExprListList -         visit 0:-            local tpe         : {Either [TypeError] TypeExtra}-            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}-            local annotatedTree : _-            local originalTree : _-      alternative WithQueryExpr:-         child ann            : Annotation -         child withs          : WithQueryList -         child withQe         : QueryExpr -         visit 0:-            local tpe         : {Either [TypeError] TypeExtra}-            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}-            local annotatedTree : _-            local originalTree : _--}--data QueryExpr-    = Select { ann:: (Annotation)-             ,selDistinct :: ( Distinct)-             ,selSelectList :: ( SelectList)-             ,selTref :: ( TableRefList)-             ,selWhere :: ( MaybeBoolExpr)-             ,selGroupBy :: ( ScalarExprList)-             ,selHaving :: ( MaybeBoolExpr)-             ,selOrderBy :: ( ScalarExprDirectionPairList)-             ,selLimit :: ( MaybeScalarExpr)-             ,selOffset :: ( MaybeScalarExpr)-             ,selOption :: ( [QueryHint])-        }-    |  CombineQueryExpr { ann:: (Annotation)-                       ,cqType :: ( CombineType)-                       ,cqQe0 :: ( QueryExpr)-                       ,cqQe1 :: ( QueryExpr)-        }-    |  Values { ann:: (Annotation)-             ,qeValues:: (ScalarExprListList)-        }-    |  WithQueryExpr { ann :: ( Annotation)-                    ,withs :: ( WithQueryList)-                    ,withQe :: ( QueryExpr)---- todo: represent parens explicitly in queryexpr---    | QueryExprParens ex:: QueryExpr---    } deriving (Eq,Show,Data,Typeable)---- cata-_sem_QueryExpr :: QueryExpr ->-                 T_QueryExpr-_sem_QueryExpr (Select _ann _selDistinct _selSelectList _selTref _selWhere _selGroupBy _selHaving _selOrderBy _selLimit _selOffset _selOption) =-    (_sem_QueryExpr_Select (_sem_Annotation _ann) _selDistinct (_sem_SelectList _selSelectList) (_sem_TableRefList _selTref) (_sem_MaybeBoolExpr _selWhere) (_sem_ScalarExprList _selGroupBy) (_sem_MaybeBoolExpr _selHaving) (_sem_ScalarExprDirectionPairList _selOrderBy) (_sem_MaybeScalarExpr _selLimit) (_sem_MaybeScalarExpr _selOffset) _selOption)-_sem_QueryExpr (CombineQueryExpr _ann _cqType _cqQe0 _cqQe1) =-    (_sem_QueryExpr_CombineQueryExpr (_sem_Annotation _ann) _cqType (_sem_QueryExpr _cqQe0) (_sem_QueryExpr _cqQe1))-_sem_QueryExpr (Values _ann _qeValues) =-    (_sem_QueryExpr_Values (_sem_Annotation _ann) (_sem_ScalarExprListList _qeValues))-_sem_QueryExpr (WithQueryExpr _ann _withs _withQe) =-    (_sem_QueryExpr_WithQueryExpr (_sem_Annotation _ann) (_sem_WithQueryList _withs) (_sem_QueryExpr _withQe))--- semantic domain-type T_QueryExpr = Bool ->-                   Catalog ->-                   (Maybe [TypeExtra]) ->-                   TypeCheckFlags ->-                   (Maybe TypeExtra) ->-                   (Maybe Environment) ->-                   ( QueryExpr,QueryExpr,(Maybe [(Text,TypeExtra)]))-data Inh_QueryExpr = Inh_QueryExpr {_assignmentCastContext_Inh_QueryExpr :: Bool,_cat_Inh_QueryExpr :: Catalog,_expectedType_Inh_QueryExpr :: (Maybe [TypeExtra]),_flags_Inh_QueryExpr :: TypeCheckFlags,_imCast_Inh_QueryExpr :: (Maybe TypeExtra),_outerDownEnv_Inh_QueryExpr :: (Maybe Environment)}-data Syn_QueryExpr = Syn_QueryExpr {_annotatedTree_Syn_QueryExpr :: QueryExpr,_originalTree_Syn_QueryExpr :: QueryExpr,_upType_Syn_QueryExpr :: (Maybe [(Text,TypeExtra)])}-_wrap_QueryExpr :: T_QueryExpr ->-                  Inh_QueryExpr ->-                  Syn_QueryExpr-_wrap_QueryExpr sem (Inh_QueryExpr _lhsIassignmentCastContext _lhsIcat _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIouterDownEnv) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIouterDownEnv-     in  (Syn_QueryExpr _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))-_sem_QueryExpr_Select :: T_Annotation ->-                        Distinct ->-                        T_SelectList ->-                        T_TableRefList ->-                        T_MaybeBoolExpr ->-                        T_ScalarExprList ->-                        T_MaybeBoolExpr ->-                        T_ScalarExprDirectionPairList ->-                        T_MaybeScalarExpr ->-                        T_MaybeScalarExpr ->-                        ([QueryHint]) ->-                        T_QueryExpr-_sem_QueryExpr_Select ann_ selDistinct_ selSelectList_ selTref_ selWhere_ selGroupBy_ selHaving_ selOrderBy_ selLimit_ selOffset_ selOption_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIouterDownEnv ->-         (let _selGroupByOexpectedCast :: Bool-              _selLimitOdownEnv :: Environment-              _selLimitOexpectedCast :: Bool-              _selOffsetOdownEnv :: Environment-              _selOffsetOexpectedCast :: Bool-              _selSelectListOexpectedCast :: Bool-              _selSelectListOdownEnv :: Environment-              _selGroupByOdownEnv :: Environment-              _selHavingOdownEnv :: Environment-              _selOrderByOdownEnv :: Environment-              _tpee :: (Either [TypeError] [(Text,TypeExtra)])-              _selWhereOdownEnv :: Environment-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _lhsOannotatedTree :: QueryExpr-              _selGroupByOexpectedTypes :: ([TypeExtra])-              _selLimitOexpectedType :: (Maybe TypeExtra)-              _selOffsetOexpectedType :: (Maybe TypeExtra)-              _lhsOoriginalTree :: QueryExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _selSelectListOassignmentCastContext :: Bool-              _selSelectListOcat :: Catalog-              _selSelectListOexpectedType :: (Maybe [TypeExtra])-              _selSelectListOflags :: TypeCheckFlags-              _selSelectListOimCast :: (Maybe TypeExtra)-              _selTrefOcat :: Catalog-              _selTrefOflags :: TypeCheckFlags-              _selTrefOimCast :: (Maybe TypeExtra)-              _selWhereOcat :: Catalog-              _selWhereOflags :: TypeCheckFlags-              _selWhereOimCast :: (Maybe TypeExtra)-              _selGroupByOassignmentCastContext :: Bool-              _selGroupByOcat :: Catalog-              _selGroupByOflags :: TypeCheckFlags-              _selGroupByOimCast :: (Maybe TypeExtra)-              _selHavingOcat :: Catalog-              _selHavingOflags :: TypeCheckFlags-              _selHavingOimCast :: (Maybe TypeExtra)-              _selOrderByOcat :: Catalog-              _selOrderByOflags :: TypeCheckFlags-              _selOrderByOimCast :: (Maybe TypeExtra)-              _selLimitOassignmentCastContext :: Bool-              _selLimitOcat :: Catalog-              _selLimitOflags :: TypeCheckFlags-              _selLimitOimCast :: (Maybe TypeExtra)-              _selOffsetOassignmentCastContext :: Bool-              _selOffsetOcat :: Catalog-              _selOffsetOflags :: TypeCheckFlags-              _selOffsetOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _selSelectListIannotatedTree :: SelectList-              _selSelectListIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _selSelectListIoriginalTree :: SelectList-              _selSelectListIupEnv :: Environment-              _selSelectListIupType :: (Maybe [(Text,TypeExtra)])-              _selTrefIannotatedTree :: TableRefList-              _selTrefIoriginalTree :: TableRefList-              _selTrefIupEnv :: Environment-              _selWhereIannotatedTree :: MaybeBoolExpr-              _selWhereIoriginalTree :: MaybeBoolExpr-              _selGroupByIannotatedTree :: ScalarExprList-              _selGroupByIoriginalTree :: ScalarExprList-              _selGroupByIupTypes :: ([Maybe TypeExtra])-              _selHavingIannotatedTree :: MaybeBoolExpr-              _selHavingIoriginalTree :: MaybeBoolExpr-              _selOrderByIannotatedTree :: ScalarExprDirectionPairList-              _selOrderByIoriginalTree :: ScalarExprDirectionPairList-              _selLimitIannotatedTree :: MaybeScalarExpr-              _selLimitIoriginalTree :: MaybeScalarExpr-              _selLimitIupType :: (Maybe TypeExtra)-              _selOffsetIannotatedTree :: MaybeScalarExpr-              _selOffsetIoriginalTree :: MaybeScalarExpr-              _selOffsetIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 74, column 24)-              _selGroupByOexpectedCast =-                  ({-# LINE 74 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 7956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 75, column 24)-              _selLimitOdownEnv =-                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 7962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 76, column 24)-              _selLimitOexpectedCast =-                  ({-# LINE 76 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 7968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 77, column 24)-              _selOffsetOdownEnv =-                  ({-# LINE 77 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 7974 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 78, column 24)-              _selOffsetOexpectedCast =-                  ({-# LINE 78 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 7980 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 79, column 24)-              _selSelectListOexpectedCast =-                  ({-# LINE 79 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 7986 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 106, column 9)-              _selSelectListOdownEnv =-                  ({-# LINE 106 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _selTrefIupEnv-                   {-# LINE 7992 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 107, column 9)-              _selGroupByOdownEnv =-                  ({-# LINE 107 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _selTrefIupEnv-                   {-# LINE 7998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 108, column 9)-              _selHavingOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _selTrefIupEnv-                   {-# LINE 8004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 128, column 9)-              _selOrderByOdownEnv =-                  ({-# LINE 128 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   E.orderByEnvironment _selSelectListIupEnv _selTrefIupEnv-                   {-# LINE 8010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 129, column 9)-              _tpee =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   maybe (Left []) Right _selSelectListIupType-                   {-# LINE 8016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 132, column 9)-              _selWhereOdownEnv =-                  ({-# LINE 132 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   maybe _selTrefIupEnv-                    (\e -> E.createCorrelatedSubqueryEnvironment e _selTrefIupEnv)-                    _lhsIouterDownEnv-                   {-# LINE 8024 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)-              _tpe =-                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM (mkTypeExtra . CompositeType) _tpee-                   {-# LINE 8030 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)-              _lhsOupType =-                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   either (const Nothing) Just _tpee-                   {-# LINE 8036 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 239, column 9)-              _selGroupBy =-                  ({-# LINE 239 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   case _selGroupByIannotatedTree of-                       [App e nm@(Name _ [Nmc "cube"]) es] ->-                         [App e{anType = (Just (mkTypeExtra $ ScalarType "int4"))-                               ,anErrs = []-                               } nm es]-                       x -> x-                   {-# LINE 8047 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 248, column 9)-              _lhsOannotatedTree =-                  ({-# LINE 248 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Select _annIannotatedTree-                          selDistinct_-                          _selSelectListIannotatedTree-                          _selTrefIannotatedTree-                          _selWhereIannotatedTree-                          _selGroupBy-                          _selHavingIannotatedTree-                          _selOrderByIannotatedTree-                          _selLimitIannotatedTree-                          _selOffsetIannotatedTree-                          selOption_-                   {-# LINE 8063 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 766, column 7)-              _selGroupByOexpectedTypes =-                  ({-# LINE 766 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   []-                   {-# LINE 8069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 767, column 7)-              _selLimitOexpectedType =-                  ({-# LINE 767 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 8075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 768, column 7)-              _selOffsetOexpectedType =-                  ({-# LINE 768 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 8081 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Select _annIannotatedTree selDistinct_ _selSelectListIannotatedTree _selTrefIannotatedTree _selWhereIannotatedTree _selGroupByIannotatedTree _selHavingIannotatedTree _selOrderByIannotatedTree _selLimitIannotatedTree _selOffsetIannotatedTree selOption_-                   {-# LINE 8087 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Select _annIoriginalTree selDistinct_ _selSelectListIoriginalTree _selTrefIoriginalTree _selWhereIoriginalTree _selGroupByIoriginalTree _selHavingIoriginalTree _selOrderByIoriginalTree _selLimitIoriginalTree _selOffsetIoriginalTree selOption_-                   {-# LINE 8093 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 8099 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 8123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selSelectListOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8129 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selSelectListOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8135 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selSelectListOexpectedType =-                  ({-# LINE 159 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 8141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selSelectListOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selSelectListOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selTrefOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selTrefOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selTrefOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8171 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selWhereOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selWhereOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selWhereOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selGroupByOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8195 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selGroupByOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8201 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selGroupByOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8207 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selGroupByOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8213 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selHavingOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8219 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selHavingOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8225 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selHavingOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOrderByOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOrderByOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8243 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOrderByOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selLimitOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8255 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selLimitOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8261 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selLimitOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selLimitOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8273 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOffsetOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8279 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOffsetOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8285 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOffsetOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8291 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOffsetOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8297 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _selSelectListIannotatedTree,_selSelectListIcolExprs,_selSelectListIoriginalTree,_selSelectListIupEnv,_selSelectListIupType) =-                  selSelectList_ _selSelectListOassignmentCastContext _selSelectListOcat _selSelectListOdownEnv _selSelectListOexpectedCast _selSelectListOexpectedType _selSelectListOflags _selSelectListOimCast-              ( _selTrefIannotatedTree,_selTrefIoriginalTree,_selTrefIupEnv) =-                  selTref_ _selTrefOcat _selTrefOflags _selTrefOimCast-              ( _selWhereIannotatedTree,_selWhereIoriginalTree) =-                  selWhere_ _selWhereOcat _selWhereOdownEnv _selWhereOflags _selWhereOimCast-              ( _selGroupByIannotatedTree,_selGroupByIoriginalTree,_selGroupByIupTypes) =-                  selGroupBy_ _selGroupByOassignmentCastContext _selGroupByOcat _selGroupByOdownEnv _selGroupByOexpectedCast _selGroupByOexpectedTypes _selGroupByOflags _selGroupByOimCast-              ( _selHavingIannotatedTree,_selHavingIoriginalTree) =-                  selHaving_ _selHavingOcat _selHavingOdownEnv _selHavingOflags _selHavingOimCast-              ( _selOrderByIannotatedTree,_selOrderByIoriginalTree) =-                  selOrderBy_ _selOrderByOcat _selOrderByOdownEnv _selOrderByOflags _selOrderByOimCast-              ( _selLimitIannotatedTree,_selLimitIoriginalTree,_selLimitIupType) =-                  selLimit_ _selLimitOassignmentCastContext _selLimitOcat _selLimitOdownEnv _selLimitOexpectedCast _selLimitOexpectedType _selLimitOflags _selLimitOimCast-              ( _selOffsetIannotatedTree,_selOffsetIoriginalTree,_selOffsetIupType) =-                  selOffset_ _selOffsetOassignmentCastContext _selOffsetOcat _selOffsetOdownEnv _selOffsetOexpectedCast _selOffsetOexpectedType _selOffsetOflags _selOffsetOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))-_sem_QueryExpr_CombineQueryExpr :: T_Annotation ->-                                  CombineType ->-                                  T_QueryExpr ->-                                  T_QueryExpr ->-                                  T_QueryExpr-_sem_QueryExpr_CombineQueryExpr ann_ cqType_ cqQe0_ cqQe1_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIouterDownEnv ->-         (let _tpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _tpee :: (Either [TypeError] [(Text,TypeExtra)])-              _lhsOannotatedTree :: QueryExpr-              _lhsOoriginalTree :: QueryExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _cqQe0OassignmentCastContext :: Bool-              _cqQe0Ocat :: Catalog-              _cqQe0OexpectedType :: (Maybe [TypeExtra])-              _cqQe0Oflags :: TypeCheckFlags-              _cqQe0OimCast :: (Maybe TypeExtra)-              _cqQe0OouterDownEnv :: (Maybe Environment)-              _cqQe1OassignmentCastContext :: Bool-              _cqQe1Ocat :: Catalog-              _cqQe1OexpectedType :: (Maybe [TypeExtra])-              _cqQe1Oflags :: TypeCheckFlags-              _cqQe1OimCast :: (Maybe TypeExtra)-              _cqQe1OouterDownEnv :: (Maybe Environment)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _cqQe0IannotatedTree :: QueryExpr-              _cqQe0IoriginalTree :: QueryExpr-              _cqQe0IupType :: (Maybe [(Text,TypeExtra)])-              _cqQe1IannotatedTree :: QueryExpr-              _cqQe1IoriginalTree :: QueryExpr-              _cqQe1IupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)-              _tpe =-                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM (mkTypeExtra . CompositeType) _tpee-                   {-# LINE 8363 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)-              _lhsOupType =-                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   either (const Nothing) Just _tpee-                   {-# LINE 8369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 156, column 9)-              _tpee =-                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   do-                   a <- maybe (Left []) Right _cqQe0IupType-                   b <- maybe (Left []) Right _cqQe1IupType-                   unless (length a == length b) $ Left [IncompatibleUnionTypes (CompositeType a) (CompositeType b)]-                   let uts = zipWithM (\(_,te1) (_,te2) -> resolveResultSetTypeExtra _lhsIcat [te1,te2])-                                 a b-                   case uts of-                     Left{} -> Left [IncompatibleUnionTypes (CompositeType a) (CompositeType b)]-                     Right uts' -> return $ zipWith (\(n,_) te -> (n,te)) a uts'-                   {-# LINE 8383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CombineQueryExpr _annIannotatedTree cqType_ _cqQe0IannotatedTree _cqQe1IannotatedTree-                   {-# LINE 8389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CombineQueryExpr _annIoriginalTree cqType_ _cqQe0IoriginalTree _cqQe1IoriginalTree-                   {-# LINE 8395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 8401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 8407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 8431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe0OassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe0Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe0OexpectedType =-                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 8449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe0Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8455 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe0OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8461 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe0OouterDownEnv =-                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIouterDownEnv-                   {-# LINE 8467 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe1OassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8473 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8479 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe1OexpectedType =-                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 8485 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8491 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8497 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _cqQe1OouterDownEnv =-                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIouterDownEnv-                   {-# LINE 8503 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _cqQe0IannotatedTree,_cqQe0IoriginalTree,_cqQe0IupType) =-                  cqQe0_ _cqQe0OassignmentCastContext _cqQe0Ocat _cqQe0OexpectedType _cqQe0Oflags _cqQe0OimCast _cqQe0OouterDownEnv-              ( _cqQe1IannotatedTree,_cqQe1IoriginalTree,_cqQe1IupType) =-                  cqQe1_ _cqQe1OassignmentCastContext _cqQe1Ocat _cqQe1OexpectedType _cqQe1Oflags _cqQe1OimCast _cqQe1OouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))-_sem_QueryExpr_Values :: T_Annotation ->-                        T_ScalarExprListList ->-                        T_QueryExpr-_sem_QueryExpr_Values ann_ qeValues_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIouterDownEnv ->-         (let _qeValuesOdownEnv :: Environment-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _tpee :: (Either [TypeError] [(Text,TypeExtra)])-              _qeValuesOexpectedCast :: Bool-              _lhsOannotatedTree :: QueryExpr-              _lhsOoriginalTree :: QueryExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _qeValuesOassignmentCastContext :: Bool-              _qeValuesOcat :: Catalog-              _qeValuesOexpectedType :: (Maybe [TypeExtra])-              _qeValuesOflags :: TypeCheckFlags-              _qeValuesOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _qeValuesIannotatedTree :: ScalarExprListList-              _qeValuesIoriginalTree :: ScalarExprListList-              _qeValuesIupType :: (Either [TypeError] [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 80, column 24)-              _qeValuesOdownEnv =-                  ({-# LINE 80 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 8547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)-              _tpe =-                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM (mkTypeExtra . CompositeType) _tpee-                   {-# LINE 8553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)-              _lhsOupType =-                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   either (const Nothing) Just _tpee-                   {-# LINE 8559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 153, column 9)-              _tpee =-                  ({-# LINE 153 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _qeValuesIupType-                   {-# LINE 8565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 154, column 9)-              _qeValuesOexpectedCast =-                  ({-# LINE 154 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   True-                   {-# LINE 8571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Values _annIannotatedTree _qeValuesIannotatedTree-                   {-# LINE 8577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Values _annIoriginalTree _qeValuesIoriginalTree-                   {-# LINE 8583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 8589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 8595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8607 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 8619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _qeValuesOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _qeValuesOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _qeValuesOexpectedType =-                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 8637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _qeValuesOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _qeValuesOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _qeValuesIannotatedTree,_qeValuesIoriginalTree,_qeValuesIupType) =-                  qeValues_ _qeValuesOassignmentCastContext _qeValuesOcat _qeValuesOdownEnv _qeValuesOexpectedCast _qeValuesOexpectedType _qeValuesOflags _qeValuesOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))-_sem_QueryExpr_WithQueryExpr :: T_Annotation ->-                               T_WithQueryList ->-                               T_QueryExpr ->-                               T_QueryExpr-_sem_QueryExpr_WithQueryExpr ann_ withs_ withQe_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIouterDownEnv ->-         (let _withQeOcat :: Catalog-              _withsOcatExtIncomp :: (Either [TypeError] Catalog)-              _lhsOannotatedTree :: QueryExpr-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _tpee :: (Either [TypeError] [(Text,TypeExtra)])-              _lhsOoriginalTree :: QueryExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _withsOcat :: Catalog-              _withsOflags :: TypeCheckFlags-              _withsOimCast :: (Maybe TypeExtra)-              _withQeOassignmentCastContext :: Bool-              _withQeOexpectedType :: (Maybe [TypeExtra])-              _withQeOflags :: TypeCheckFlags-              _withQeOimCast :: (Maybe TypeExtra)-              _withQeOouterDownEnv :: (Maybe Environment)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _withsIannotatedTree :: WithQueryList-              _withsIcatExtComp :: (Either [TypeError] Catalog)-              _withsIoriginalTree :: WithQueryList-              _withQeIannotatedTree :: QueryExpr-              _withQeIoriginalTree :: QueryExpr-              _withQeIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 70, column 8)-              _withQeOcat =-                  ({-# LINE 70 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   case _withsIcatExtComp of-                     Right catExtComp -> catExtComp-                     Left _ -> _lhsIcat-                   {-# LINE 8700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 74, column 8)-              _withsOcatExtIncomp =-                  ({-# LINE 74 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   return _lhsIcat-                   {-# LINE 8706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 76, column 8)-              _lhsOannotatedTree =-                  ({-# LINE 76 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   case _withsIcatExtComp of-                     Right _ -> WithQueryExpr (_annIannotatedTree) (_withsIannotatedTree) (_withQeIannotatedTree)-                     Left tyErrs -> WithQueryExpr (emptyAnnotation { anType = Nothing, anErrs = tyErrs })-                       (_withsIannotatedTree) (_withQeIannotatedTree)-                   {-# LINE 8715 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)-              _tpe =-                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM (mkTypeExtra . CompositeType) _tpee-                   {-# LINE 8721 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)-              _lhsOupType =-                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   either (const Nothing) Just _tpee-                   {-# LINE 8727 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 151, column 9)-              _tpee =-                  ({-# LINE 151 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   maybe (Left []) Right _withQeIupType-                   {-# LINE 8733 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WithQueryExpr _annIannotatedTree _withsIannotatedTree _withQeIannotatedTree-                   {-# LINE 8739 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WithQueryExpr _annIoriginalTree _withsIoriginalTree _withQeIoriginalTree-                   {-# LINE 8745 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 8751 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8757 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8763 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8769 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _annOtpe =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _tpe-                   {-# LINE 8775 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8781 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8787 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withQeOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 8799 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withQeOexpectedType =-                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 8805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withQeOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withQeOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 8817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _withQeOouterDownEnv =-                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIouterDownEnv-                   {-# LINE 8823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _withsIannotatedTree,_withsIcatExtComp,_withsIoriginalTree) =-                  withs_ _withsOcat _withsOcatExtIncomp _withsOflags _withsOimCast-              ( _withQeIannotatedTree,_withQeIoriginalTree,_withQeIupType) =-                  withQe_ _withQeOassignmentCastContext _withQeOcat _withQeOexpectedType _withQeOflags _withQeOimCast _withQeOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))--- Root ---------------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-      synthesized attributes:-         annotatedTree        : Root -         originalTree         : Root -   alternatives:-      alternative Root:-         child statements     : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data Root = Root (StatementList)-          deriving ( Show)--- cata-_sem_Root :: Root ->-            T_Root-_sem_Root (Root _statements) =-    (_sem_Root_Root (_sem_StatementList _statements))--- semantic domain-type T_Root = Catalog ->-              TypeCheckFlags ->-              ( Root,Root)-data Inh_Root = Inh_Root {_cat_Inh_Root :: Catalog,_flags_Inh_Root :: TypeCheckFlags}-data Syn_Root = Syn_Root {_annotatedTree_Syn_Root :: Root,_originalTree_Syn_Root :: Root}-_wrap_Root :: T_Root ->-             Inh_Root ->-             Syn_Root-_wrap_Root sem (Inh_Root _lhsIcat _lhsIflags) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags-     in  (Syn_Root _lhsOannotatedTree _lhsOoriginalTree))-_sem_Root_Root :: T_StatementList ->-                 T_Root-_sem_Root_Root statements_ =-    (\ _lhsIcat-       _lhsIflags ->-         (let _statementsOimCast :: (Maybe TypeExtra)-              _lhsOannotatedTree :: Root-              _lhsOoriginalTree :: Root-              _statementsOcat :: Catalog-              _statementsOflags :: TypeCheckFlags-              _statementsIannotatedTree :: StatementList-              _statementsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag"(line 133, column 8)-              _statementsOimCast =-                  ({-# LINE 133 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 8883 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Root _statementsIannotatedTree-                   {-# LINE 8889 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Root _statementsIoriginalTree-                   {-# LINE 8895 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 8901 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 8907 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _statementsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 8913 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _statementsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 8919 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _statementsIannotatedTree,_statementsIoriginalTree) =-                  statements_ _statementsOcat _statementsOflags _statementsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- RowConstraint ------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : RowConstraint -         originalTree         : RowConstraint -   alternatives:-      alternative NullConstraint:-         child ann            : Annotation -         child name           : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative NotNullConstraint:-         child ann            : Annotation -         child name           : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative IdentityConstraint:-         child ann            : Annotation -         child name           : {String}-         child seedAndInc     : {(Maybe (Integer,Integer))}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative RowCheckConstraint:-         child ann            : Annotation -         child name           : {String}-         child expr           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative RowUniqueConstraint:-         child ann            : Annotation -         child name           : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative RowPrimaryKeyConstraint:-         child ann            : Annotation -         child name           : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative RowReferenceConstraint:-         child ann            : Annotation -         child name           : {String}-         child table          : Name -         child att            : {Maybe NameComponent}-         child onUpdate       : {Cascade}-         child onDelete       : {Cascade}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data RowConstraint = NullConstraint (Annotation) (String)-                   | NotNullConstraint (Annotation) (String)-                   | IdentityConstraint (Annotation) (String) (((Maybe (Integer,Integer))))-                   | RowCheckConstraint (Annotation) (String) (ScalarExpr)-                   | RowUniqueConstraint (Annotation) (String)-                   | RowPrimaryKeyConstraint (Annotation) (String)-                   | RowReferenceConstraint (Annotation) (String) (Name) ((Maybe NameComponent)) (Cascade) (Cascade)-                   deriving ( Data,Eq,Show,Typeable)--- cata-_sem_RowConstraint :: RowConstraint ->-                     T_RowConstraint-_sem_RowConstraint (NullConstraint _ann _name) =-    (_sem_RowConstraint_NullConstraint (_sem_Annotation _ann) _name)-_sem_RowConstraint (NotNullConstraint _ann _name) =-    (_sem_RowConstraint_NotNullConstraint (_sem_Annotation _ann) _name)-_sem_RowConstraint (IdentityConstraint _ann _name _seedAndInc) =-    (_sem_RowConstraint_IdentityConstraint (_sem_Annotation _ann) _name _seedAndInc)-_sem_RowConstraint (RowCheckConstraint _ann _name _expr) =-    (_sem_RowConstraint_RowCheckConstraint (_sem_Annotation _ann) _name (_sem_ScalarExpr _expr))-_sem_RowConstraint (RowUniqueConstraint _ann _name) =-    (_sem_RowConstraint_RowUniqueConstraint (_sem_Annotation _ann) _name)-_sem_RowConstraint (RowPrimaryKeyConstraint _ann _name) =-    (_sem_RowConstraint_RowPrimaryKeyConstraint (_sem_Annotation _ann) _name)-_sem_RowConstraint (RowReferenceConstraint _ann _name _table _att _onUpdate _onDelete) =-    (_sem_RowConstraint_RowReferenceConstraint (_sem_Annotation _ann) _name (_sem_Name _table) _att _onUpdate _onDelete)--- semantic domain-type T_RowConstraint = Catalog ->-                       TypeCheckFlags ->-                       (Maybe TypeExtra) ->-                       ( RowConstraint,RowConstraint)-data Inh_RowConstraint = Inh_RowConstraint {_cat_Inh_RowConstraint :: Catalog,_flags_Inh_RowConstraint :: TypeCheckFlags,_imCast_Inh_RowConstraint :: (Maybe TypeExtra)}-data Syn_RowConstraint = Syn_RowConstraint {_annotatedTree_Syn_RowConstraint :: RowConstraint,_originalTree_Syn_RowConstraint :: RowConstraint}-_wrap_RowConstraint :: T_RowConstraint ->-                      Inh_RowConstraint ->-                      Syn_RowConstraint-_wrap_RowConstraint sem (Inh_RowConstraint _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_RowConstraint _lhsOannotatedTree _lhsOoriginalTree))-_sem_RowConstraint_NullConstraint :: T_Annotation ->-                                    String ->-                                    T_RowConstraint-_sem_RowConstraint_NullConstraint ann_ name_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: RowConstraint-              _lhsOoriginalTree :: RowConstraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 83, column 36)-              _annOtpe =-                  ({-# LINE 83 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9041 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NullConstraint _annIannotatedTree name_-                   {-# LINE 9047 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NullConstraint _annIoriginalTree name_-                   {-# LINE 9053 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9059 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9065 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9071 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9077 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9083 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_RowConstraint_NotNullConstraint :: T_Annotation ->-                                       String ->-                                       T_RowConstraint-_sem_RowConstraint_NotNullConstraint ann_ name_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: RowConstraint-              _lhsOoriginalTree :: RowConstraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 82, column 39)-              _annOtpe =-                  ({-# LINE 82 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9107 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NotNullConstraint _annIannotatedTree name_-                   {-# LINE 9113 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NotNullConstraint _annIoriginalTree name_-                   {-# LINE 9119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9125 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9131 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_RowConstraint_IdentityConstraint :: T_Annotation ->-                                        String ->-                                        ((Maybe (Integer,Integer))) ->-                                        T_RowConstraint-_sem_RowConstraint_IdentityConstraint ann_ name_ seedAndInc_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: RowConstraint-              _lhsOoriginalTree :: RowConstraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 81, column 40)-              _annOtpe =-                  ({-# LINE 81 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   IdentityConstraint _annIannotatedTree name_ seedAndInc_-                   {-# LINE 9180 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   IdentityConstraint _annIoriginalTree name_ seedAndInc_-                   {-# LINE 9186 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9192 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9198 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9204 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9210 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9216 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_RowConstraint_RowCheckConstraint :: T_Annotation ->-                                        String ->-                                        T_ScalarExpr ->-                                        T_RowConstraint-_sem_RowConstraint_RowCheckConstraint ann_ name_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOodbcFunction :: Bool-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: RowConstraint-              _lhsOoriginalTree :: RowConstraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 84, column 40)-              _annOtpe =-                  ({-# LINE 84 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9253 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 85, column 40)-              _exprOdownEnv =-                  ({-# LINE 85 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 9259 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 86, column 40)-              _exprOexpectedCast =-                  ({-# LINE 86 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 9265 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 87, column 40)-              _exprOexpectedType =-                  ({-# LINE 87 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 9271 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 149, column 26)-              _exprOodbcFunction =-                  ({-# LINE 149 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 9277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 816, column 40)-              _exprOassignmentCastContext =-                  ({-# LINE 816 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 9283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowCheckConstraint _annIannotatedTree name_ _exprIannotatedTree-                   {-# LINE 9289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowCheckConstraint _annIoriginalTree name_ _exprIoriginalTree-                   {-# LINE 9295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9313 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9319 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9325 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9331 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9337 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9343 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_RowConstraint_RowUniqueConstraint :: T_Annotation ->-                                         String ->-                                         T_RowConstraint-_sem_RowConstraint_RowUniqueConstraint ann_ name_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: RowConstraint-              _lhsOoriginalTree :: RowConstraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 91, column 41)-              _annOtpe =-                  ({-# LINE 91 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowUniqueConstraint _annIannotatedTree name_-                   {-# LINE 9375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowUniqueConstraint _annIoriginalTree name_-                   {-# LINE 9381 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9387 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9393 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_RowConstraint_RowPrimaryKeyConstraint :: T_Annotation ->-                                             String ->-                                             T_RowConstraint-_sem_RowConstraint_RowPrimaryKeyConstraint ann_ name_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: RowConstraint-              _lhsOoriginalTree :: RowConstraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 88, column 45)-              _annOtpe =-                  ({-# LINE 88 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowPrimaryKeyConstraint _annIannotatedTree name_-                   {-# LINE 9441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowPrimaryKeyConstraint _annIoriginalTree name_-                   {-# LINE 9447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_RowConstraint_RowReferenceConstraint :: T_Annotation ->-                                            String ->-                                            T_Name ->-                                            (Maybe NameComponent) ->-                                            Cascade ->-                                            Cascade ->-                                            T_RowConstraint-_sem_RowConstraint_RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _tableOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: RowConstraint-              _lhsOoriginalTree :: RowConstraint-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tableOcat :: Catalog-              _tableOflags :: TypeCheckFlags-              _tableOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tableIannotatedTree :: Name-              _tableIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 89, column 44)-              _annOtpe =-                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 90, column 44)-              _tableOtpe =-                  ({-# LINE 90 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 9517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowReferenceConstraint _annIannotatedTree name_ _tableIannotatedTree att_ onUpdate_ onDelete_-                   {-# LINE 9523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   RowReferenceConstraint _annIoriginalTree name_ _tableIoriginalTree att_ onUpdate_ onDelete_-                   {-# LINE 9529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tableIannotatedTree,_tableIoriginalTree) =-                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- RowConstraintList --------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : RowConstraintList -         originalTree         : RowConstraintList -   alternatives:-      alternative Cons:-         child hd             : RowConstraint -         child tl             : RowConstraintList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type RowConstraintList = [RowConstraint]--- cata-_sem_RowConstraintList :: RowConstraintList ->-                         T_RowConstraintList-_sem_RowConstraintList list =-    (Prelude.foldr _sem_RowConstraintList_Cons _sem_RowConstraintList_Nil (Prelude.map _sem_RowConstraint list))--- semantic domain-type T_RowConstraintList = Catalog ->-                           TypeCheckFlags ->-                           (Maybe TypeExtra) ->-                           ( RowConstraintList,RowConstraintList)-data Inh_RowConstraintList = Inh_RowConstraintList {_cat_Inh_RowConstraintList :: Catalog,_flags_Inh_RowConstraintList :: TypeCheckFlags,_imCast_Inh_RowConstraintList :: (Maybe TypeExtra)}-data Syn_RowConstraintList = Syn_RowConstraintList {_annotatedTree_Syn_RowConstraintList :: RowConstraintList,_originalTree_Syn_RowConstraintList :: RowConstraintList}-_wrap_RowConstraintList :: T_RowConstraintList ->-                          Inh_RowConstraintList ->-                          Syn_RowConstraintList-_wrap_RowConstraintList sem (Inh_RowConstraintList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_RowConstraintList _lhsOannotatedTree _lhsOoriginalTree))-_sem_RowConstraintList_Cons :: T_RowConstraint ->-                              T_RowConstraintList ->-                              T_RowConstraintList-_sem_RowConstraintList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: RowConstraintList-              _lhsOoriginalTree :: RowConstraintList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: RowConstraint-              _hdIoriginalTree :: RowConstraint-              _tlIannotatedTree :: RowConstraintList-              _tlIoriginalTree :: RowConstraintList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 9648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 9654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9666 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9672 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9678 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9684 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 9690 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 9696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 9702 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_RowConstraintList_Nil :: T_RowConstraintList-_sem_RowConstraintList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: RowConstraintList-              _lhsOoriginalTree :: RowConstraintList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 9720 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 9726 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 9732 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 9738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExpr ---------------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedType         : Maybe TypeExtra-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-         odbcFunction         : Bool-      synthesized attributes:-         annotatedTree        : ScalarExpr -         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]-         originalTree         : ScalarExpr -         upType               : Maybe TypeExtra-   alternatives:-      alternative NumberLit:-         child ann            : Annotation -         child d              : {String}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local digChars    : _-            local annotatedTree : _-            local originalTree : _-      alternative StringLit:-         child ann            : Annotation -         child value          : {String}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative NullLit:-         child ann            : Annotation -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative BooleanLit:-         child ann            : Annotation -         child b              : {Bool}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative TypedStringLit:-         child ann            : Annotation -         child tn             : TypeName -         child value          : {String}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Interval:-         child ann            : Annotation -         child value          : {String}-         child field          : {IntervalField}-         child prec           : {Maybe Int}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Identifier:-         child ann            : Annotation -         child i              : Name -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local elkp        : _-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Star:-         child ann            : Annotation -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : {Either [TypeError] TypeExtra}-            local starCS      : _-            local annotatedTree : _-            local originalTree : _-      alternative QStar:-         child ann            : Annotation -         child q              : {NameComponent}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : {Either [TypeError] TypeExtra}-            local starCS      : _-            local annotatedTree : _-            local originalTree : _-      alternative PositionalArg:-         child ann            : Annotation -         child p              : {Integer}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Placeholder:-         child ann            : Annotation -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative PrefixOp:-         child ann            : Annotation -         child opName         : Name -         child arg            : ScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : {Either [TypeError] TypeExtra}-            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}-            local annotatedTree : _-            local originalTree : _-      alternative PostfixOp:-         child ann            : Annotation -         child opName         : Name -         child arg            : ScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : {Either [TypeError] TypeExtra}-            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}-            local annotatedTree : _-            local originalTree : _-      alternative BinaryOp:-         child ann            : Annotation -         child opName         : Name -         child arg0           : ScalarExpr -         child arg1           : ScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : {Either [TypeError] TypeExtra}-            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}-            local annotatedTree : _-            local originalTree : _-      alternative SpecialOp:-         child ann            : Annotation -         child opName         : Name -         child args           : ScalarExprList -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : {Either [TypeError] TypeExtra}-            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}-            local annotatedTree : _-            local originalTree : _-      alternative Extract:-         child ann            : Annotation -         child field          : {ExtractField}-         child e              : ScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative App:-         child ann            : Annotation -         child funName        : Name -         child args           : ScalarExprList -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : {Either [TypeError] TypeExtra}-            local funName     : _-            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}-            local annotatedTree : _-            local originalTree : _-      alternative AggregateApp:-         child ann            : Annotation -         child aggDistinct    : {Distinct}-         child fn             : ScalarExpr -         child orderBy        : ScalarExprDirectionPairList -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative WindowApp:-         child ann            : Annotation -         child fn             : ScalarExpr -         child partitionBy    : ScalarExprList -         child orderBy        : ScalarExprDirectionPairList -         child frm            : {Maybe FrameClause}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Cast:-         child ann            : Annotation -         child expr           : ScalarExpr -         child tn             : TypeName -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative ImplicitCast:-         child ann            : Annotation -         child expr           : ScalarExpr -         child te             : {TypeExtra}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Case:-         child ann            : Annotation -         child cases          : CaseScalarExprListScalarExprPairList -         child els            : MaybeScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local whenTypes   : _-            local thenTypes   : _-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative CaseSimple:-         child ann            : Annotation -         child value          : ScalarExpr -         child cases          : CaseScalarExprListScalarExprPairList -         child els            : MaybeScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local whenTypes   : _-            local thenTypes   : _-            local whent       : _-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Parens:-         child ann            : Annotation -         child ex             : ScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative InPredicate:-         child ann            : Annotation -         child expr           : ScalarExpr -         child i              : {Bool}-         child list           : InList -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local rt          : {Either [TypeError] TypeExtra}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative Exists:-         child ann            : Annotation -         child sel            : QueryExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative ScalarSubQuery:-         child ann            : Annotation -         child sel            : QueryExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative LiftApp:-         child ann            : Annotation -         child oper           : Name -         child flav           : {LiftFlavour}-         child args           : ScalarExprList -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative OdbcLiteral:-         child ann            : Annotation -         child olt            : {OdbcLiteralType}-         child val            : {String}-         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative OdbcFunc:-         child ann            : Annotation -         child ex             : ScalarExpr -         visit 0:-            local upType      : _-            local dialectTypeName : {Text -> Either [TypeError] Text}-            local tpe         : _-            local annotatedTree : _-            local originalTree : _-      alternative AntiScalarExpr:-         child string         : {String}-         visit 0:-            local tpe         : _-            local annotatedTree : _-            local originalTree : _--}-data ScalarExpr = NumberLit (Annotation) (String)-                | StringLit (Annotation) (String)-                | NullLit (Annotation)-                | BooleanLit (Annotation) (Bool)-                | TypedStringLit (Annotation) (TypeName) (String)-                | Interval (Annotation) (String) (IntervalField) ((Maybe Int))-                | Identifier (Annotation) (Name)-                | Star (Annotation)-                | QStar (Annotation) (NameComponent)-                | PositionalArg (Annotation) (Integer)-                | Placeholder (Annotation)-                | PrefixOp (Annotation) (Name) (ScalarExpr)-                | PostfixOp (Annotation) (Name) (ScalarExpr)-                | BinaryOp (Annotation) (Name) (ScalarExpr) (ScalarExpr)-                | SpecialOp (Annotation) (Name) (ScalarExprList)-                | Extract (Annotation) (ExtractField) (ScalarExpr)-                | App (Annotation) (Name) (ScalarExprList)-                | AggregateApp (Annotation) (Distinct) (ScalarExpr) (ScalarExprDirectionPairList)-                | WindowApp (Annotation) (ScalarExpr) (ScalarExprList) (ScalarExprDirectionPairList) ((Maybe FrameClause))-                | Cast (Annotation) (ScalarExpr) (TypeName)-                | ImplicitCast (Annotation) (ScalarExpr) (TypeExtra)-                | Case (Annotation) (CaseScalarExprListScalarExprPairList) (MaybeScalarExpr)-                | CaseSimple (Annotation) (ScalarExpr) (CaseScalarExprListScalarExprPairList) (MaybeScalarExpr)-                | Parens (Annotation) (ScalarExpr)-                | InPredicate (Annotation) (ScalarExpr) (Bool) (InList)-                | Exists (Annotation) (QueryExpr)-                | ScalarSubQuery (Annotation) (QueryExpr)-                | LiftApp (Annotation) (Name) (LiftFlavour) (ScalarExprList)-                | OdbcLiteral (Annotation) (OdbcLiteralType) (String)-                | OdbcFunc (Annotation) (ScalarExpr)-                | AntiScalarExpr (String)-                deriving ( Data,Eq,Show,Typeable)--- cata-_sem_ScalarExpr :: ScalarExpr ->-                  T_ScalarExpr-_sem_ScalarExpr (NumberLit _ann _d) =-    (_sem_ScalarExpr_NumberLit (_sem_Annotation _ann) _d)-_sem_ScalarExpr (StringLit _ann _value) =-    (_sem_ScalarExpr_StringLit (_sem_Annotation _ann) _value)-_sem_ScalarExpr (NullLit _ann) =-    (_sem_ScalarExpr_NullLit (_sem_Annotation _ann))-_sem_ScalarExpr (BooleanLit _ann _b) =-    (_sem_ScalarExpr_BooleanLit (_sem_Annotation _ann) _b)-_sem_ScalarExpr (TypedStringLit _ann _tn _value) =-    (_sem_ScalarExpr_TypedStringLit (_sem_Annotation _ann) (_sem_TypeName _tn) _value)-_sem_ScalarExpr (Interval _ann _value _field _prec) =-    (_sem_ScalarExpr_Interval (_sem_Annotation _ann) _value _field _prec)-_sem_ScalarExpr (Identifier _ann _i) =-    (_sem_ScalarExpr_Identifier (_sem_Annotation _ann) (_sem_Name _i))-_sem_ScalarExpr (Star _ann) =-    (_sem_ScalarExpr_Star (_sem_Annotation _ann))-_sem_ScalarExpr (QStar _ann _q) =-    (_sem_ScalarExpr_QStar (_sem_Annotation _ann) _q)-_sem_ScalarExpr (PositionalArg _ann _p) =-    (_sem_ScalarExpr_PositionalArg (_sem_Annotation _ann) _p)-_sem_ScalarExpr (Placeholder _ann) =-    (_sem_ScalarExpr_Placeholder (_sem_Annotation _ann))-_sem_ScalarExpr (PrefixOp _ann _opName _arg) =-    (_sem_ScalarExpr_PrefixOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExpr _arg))-_sem_ScalarExpr (PostfixOp _ann _opName _arg) =-    (_sem_ScalarExpr_PostfixOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExpr _arg))-_sem_ScalarExpr (BinaryOp _ann _opName _arg0 _arg1) =-    (_sem_ScalarExpr_BinaryOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExpr _arg0) (_sem_ScalarExpr _arg1))-_sem_ScalarExpr (SpecialOp _ann _opName _args) =-    (_sem_ScalarExpr_SpecialOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExprList _args))-_sem_ScalarExpr (Extract _ann _field _e) =-    (_sem_ScalarExpr_Extract (_sem_Annotation _ann) _field (_sem_ScalarExpr _e))-_sem_ScalarExpr (App _ann _funName _args) =-    (_sem_ScalarExpr_App (_sem_Annotation _ann) (_sem_Name _funName) (_sem_ScalarExprList _args))-_sem_ScalarExpr (AggregateApp _ann _aggDistinct _fn _orderBy) =-    (_sem_ScalarExpr_AggregateApp (_sem_Annotation _ann) _aggDistinct (_sem_ScalarExpr _fn) (_sem_ScalarExprDirectionPairList _orderBy))-_sem_ScalarExpr (WindowApp _ann _fn _partitionBy _orderBy _frm) =-    (_sem_ScalarExpr_WindowApp (_sem_Annotation _ann) (_sem_ScalarExpr _fn) (_sem_ScalarExprList _partitionBy) (_sem_ScalarExprDirectionPairList _orderBy) _frm)-_sem_ScalarExpr (Cast _ann _expr _tn) =-    (_sem_ScalarExpr_Cast (_sem_Annotation _ann) (_sem_ScalarExpr _expr) (_sem_TypeName _tn))-_sem_ScalarExpr (ImplicitCast _ann _expr _te) =-    (_sem_ScalarExpr_ImplicitCast (_sem_Annotation _ann) (_sem_ScalarExpr _expr) _te)-_sem_ScalarExpr (Case _ann _cases _els) =-    (_sem_ScalarExpr_Case (_sem_Annotation _ann) (_sem_CaseScalarExprListScalarExprPairList _cases) (_sem_MaybeScalarExpr _els))-_sem_ScalarExpr (CaseSimple _ann _value _cases _els) =-    (_sem_ScalarExpr_CaseSimple (_sem_Annotation _ann) (_sem_ScalarExpr _value) (_sem_CaseScalarExprListScalarExprPairList _cases) (_sem_MaybeScalarExpr _els))-_sem_ScalarExpr (Parens _ann _ex) =-    (_sem_ScalarExpr_Parens (_sem_Annotation _ann) (_sem_ScalarExpr _ex))-_sem_ScalarExpr (InPredicate _ann _expr _i _list) =-    (_sem_ScalarExpr_InPredicate (_sem_Annotation _ann) (_sem_ScalarExpr _expr) _i (_sem_InList _list))-_sem_ScalarExpr (Exists _ann _sel) =-    (_sem_ScalarExpr_Exists (_sem_Annotation _ann) (_sem_QueryExpr _sel))-_sem_ScalarExpr (ScalarSubQuery _ann _sel) =-    (_sem_ScalarExpr_ScalarSubQuery (_sem_Annotation _ann) (_sem_QueryExpr _sel))-_sem_ScalarExpr (LiftApp _ann _oper _flav _args) =-    (_sem_ScalarExpr_LiftApp (_sem_Annotation _ann) (_sem_Name _oper) _flav (_sem_ScalarExprList _args))-_sem_ScalarExpr (OdbcLiteral _ann _olt _val) =-    (_sem_ScalarExpr_OdbcLiteral (_sem_Annotation _ann) _olt _val)-_sem_ScalarExpr (OdbcFunc _ann _ex) =-    (_sem_ScalarExpr_OdbcFunc (_sem_Annotation _ann) (_sem_ScalarExpr _ex))-_sem_ScalarExpr (AntiScalarExpr _string) =-    (_sem_ScalarExpr_AntiScalarExpr _string)--- semantic domain-type T_ScalarExpr = Bool ->-                    Catalog ->-                    Environment ->-                    Bool ->-                    (Maybe TypeExtra) ->-                    TypeCheckFlags ->-                    (Maybe TypeExtra) ->-                    Bool ->-                    ( ScalarExpr,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),ScalarExpr,(Maybe TypeExtra))-data Inh_ScalarExpr = Inh_ScalarExpr {_assignmentCastContext_Inh_ScalarExpr :: Bool,_cat_Inh_ScalarExpr :: Catalog,_downEnv_Inh_ScalarExpr :: Environment,_expectedCast_Inh_ScalarExpr :: Bool,_expectedType_Inh_ScalarExpr :: (Maybe TypeExtra),_flags_Inh_ScalarExpr :: TypeCheckFlags,_imCast_Inh_ScalarExpr :: (Maybe TypeExtra),_odbcFunction_Inh_ScalarExpr :: Bool}-data Syn_ScalarExpr = Syn_ScalarExpr {_annotatedTree_Syn_ScalarExpr :: ScalarExpr,_colExprs_Syn_ScalarExpr :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_ScalarExpr :: ScalarExpr,_upType_Syn_ScalarExpr :: (Maybe TypeExtra)}-_wrap_ScalarExpr :: T_ScalarExpr ->-                   Inh_ScalarExpr ->-                   Syn_ScalarExpr-_wrap_ScalarExpr sem (Inh_ScalarExpr _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIodbcFunction) =-    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIodbcFunction-     in  (Syn_ScalarExpr _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree _lhsOupType))-_sem_ScalarExpr_NumberLit :: T_Annotation ->-                            String ->-                            T_ScalarExpr-_sem_ScalarExpr_NumberLit ann_ d_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 10231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 10237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 10243 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 10249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 10260 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 10266 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 249, column 9)-              _tpe =-                  ({-# LINE 249 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   if all (`elem` _digChars    ) d_-                   then (mkTypeExtraNN . ScalarType) <$> classifyInteger (tcfDialect _lhsIflags) d_-                   else (mkTypeExtraNN . ScalarType) <$> (_dialectTypeName     "numeric")-                   {-# LINE 10274 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 253, column 9)-              _digChars =-                  ({-# LINE 253 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   concatMap show [(0::Int)..9]-                   {-# LINE 10280 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NumberLit _annIannotatedTree d_-                   {-# LINE 10286 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NumberLit _annIoriginalTree d_-                   {-# LINE 10292 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 10298 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 10304 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 10310 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 10316 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_StringLit :: T_Annotation ->-                            String ->-                            T_ScalarExpr-_sem_ScalarExpr_StringLit ann_ value_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 10363 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 10369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 10375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 10381 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 10392 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 10398 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 257, column 9)-              _tpe =-                  ({-# LINE 257 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Right $ (mkTypeExtraNN UnknownType) {tePrecision = Just $ length value_}-                   {-# LINE 10404 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   StringLit _annIannotatedTree value_-                   {-# LINE 10410 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   StringLit _annIoriginalTree value_-                   {-# LINE 10416 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 10422 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 10428 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 10434 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 10440 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_NullLit :: T_Annotation ->-                          T_ScalarExpr-_sem_ScalarExpr_NullLit ann_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 10486 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 10492 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 10498 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 10504 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 10515 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 10521 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 260, column 10)-              _tpe =-                  ({-# LINE 260 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Right $ mkTypeExtra UnknownType-                   {-# LINE 10527 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NullLit _annIannotatedTree-                   {-# LINE 10533 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NullLit _annIoriginalTree-                   {-# LINE 10539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 10545 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 10551 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 10557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 10563 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_BooleanLit :: T_Annotation ->-                             Bool ->-                             T_ScalarExpr-_sem_ScalarExpr_BooleanLit ann_ b_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 10610 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 10616 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 10622 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 10628 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 10639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 10645 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 240, column 9)-              _tpe =-                  ({-# LINE 240 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   fmap (mkTypeExtraNN . ScalarType) $ _dialectTypeName     "boolean"-                   {-# LINE 10651 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   BooleanLit _annIannotatedTree b_-                   {-# LINE 10657 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   BooleanLit _annIoriginalTree b_-                   {-# LINE 10663 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 10669 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 10675 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 10681 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 10687 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_TypedStringLit :: T_Annotation ->-                                 T_TypeName ->-                                 String ->-                                 T_ScalarExpr-_sem_ScalarExpr_TypedStringLit ann_ tn_ value_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _tnOcat :: Catalog-              _tnOflags :: TypeCheckFlags-              _tnOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tnIannotatedTree :: TypeName-              _tnInamedType :: (Maybe TypeExtra)-              _tnIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 10741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 10747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 10753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 10759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 10770 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 10776 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 270, column 10)-              _tpe =-                  ({-# LINE 270 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right _tnInamedType-                   {-# LINE 10782 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TypedStringLit _annIannotatedTree _tnIannotatedTree value_-                   {-# LINE 10788 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TypedStringLit _annIoriginalTree _tnIoriginalTree value_-                   {-# LINE 10794 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 10800 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 10806 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 10812 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 10818 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 10824 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 10830 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 10836 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tnIannotatedTree,_tnInamedType,_tnIoriginalTree) =-                  tn_ _tnOcat _tnOflags _tnOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Interval :: T_Annotation ->-                           String ->-                           IntervalField ->-                           (Maybe Int) ->-                           T_ScalarExpr-_sem_ScalarExpr_Interval ann_ value_ field_ prec_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 10887 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 10893 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 10899 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 10905 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 10916 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 10922 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 282, column 9)-              _tpe =-                  ({-# LINE 282 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Right $ mkTypeExtraNN $ ScalarType "interval"-                   {-# LINE 10928 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Interval _annIannotatedTree value_ field_ prec_-                   {-# LINE 10934 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Interval _annIoriginalTree value_ field_ prec_-                   {-# LINE 10940 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 10946 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 10952 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 10958 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 10964 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Identifier :: T_Annotation ->-                             T_Name ->-                             T_ScalarExpr-_sem_ScalarExpr_Identifier ann_ i_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _iOtpe :: (Either [TypeError] TypeExtra)-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _iOcat :: Catalog-              _iOflags :: TypeCheckFlags-              _iOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _iIannotatedTree :: Name-              _iIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 11017 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 11023 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 11029 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 11035 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 11046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 11052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 325, column 10)-              _elkp =-                  ({-# LINE 325 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   E.envLookupIdentifier (nameComponents _iIoriginalTree) _lhsIdownEnv-                   {-# LINE 11058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 326, column 10)-              _tpe =-                  ({-# LINE 326 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   fmap snd _elkp-                   {-# LINE 11064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 328, column 10)-              _lhsOannotatedTree =-                  ({-# LINE 328 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _annotatedTree-                   {-# LINE 11070 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 329, column 10)-              _annotatedTree =-                  ({-# LINE 329 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   let t = Identifier _annIannotatedTree _iIannotatedTree-                   in fromMaybe t $ do-                       case tcfAddQualifiers _lhsIflags of-                         False -> Nothing-                         True -> do-                                ((q,i),_) <- either (const Nothing) Just _elkp-                                if q /= ""-                                  then-                                       return $ Identifier _annIannotatedTree-                                                  (Name emptyAnnotation [Nmc $ T.unpack q, Nmc $ T.unpack i])-                                  else return t-                   {-# LINE 11086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 349, column 10)-              _iOtpe =-                  ({-# LINE 349 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 11092 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Identifier _annIoriginalTree _iIoriginalTree-                   {-# LINE 11098 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 11104 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11110 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11116 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _iOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11122 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _iOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11128 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _iOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 11134 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _iIannotatedTree,_iIoriginalTree) =-                  i_ _iOcat _iOflags _iOimCast _iOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Star :: T_Annotation ->-                       T_ScalarExpr-_sem_ScalarExpr_Star ann_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 11183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 11189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 11195 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 11201 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 11212 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 11218 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 713, column 9)-              _tpe =-                  ({-# LINE 713 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _originalTree of-                     Star _ ->-                       E.envExpandStar Nothing _lhsIdownEnv-                       >>= _starCS-                     QStar _ q -> do-                       E.envExpandStar (Just q) _lhsIdownEnv-                       >>= _starCS-                     _ -> Left [InternalError "wrong ctor in sem rule for star, qstar in scalarexprs.ag"]-                   {-# LINE 11231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 722, column 9)-              _starCS =-                  ({-# LINE 722 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Right . mkTypeExtraNN . CompositeType . map (\((_q,n),t) -> (n,t))-                   {-# LINE 11237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Star _annIannotatedTree-                   {-# LINE 11243 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Star _annIoriginalTree-                   {-# LINE 11249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 11255 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 11261 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11273 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_QStar :: T_Annotation ->-                        NameComponent ->-                        T_ScalarExpr-_sem_ScalarExpr_QStar ann_ q_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 11321 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 11327 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 11333 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 11339 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 11350 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 11356 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 713, column 9)-              _tpe =-                  ({-# LINE 713 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _originalTree of-                     Star _ ->-                       E.envExpandStar Nothing _lhsIdownEnv-                       >>= _starCS-                     QStar _ q -> do-                       E.envExpandStar (Just q) _lhsIdownEnv-                       >>= _starCS-                     _ -> Left [InternalError "wrong ctor in sem rule for star, qstar in scalarexprs.ag"]-                   {-# LINE 11369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 722, column 9)-              _starCS =-                  ({-# LINE 722 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Right . mkTypeExtraNN . CompositeType . map (\((_q,n),t) -> (n,t))-                   {-# LINE 11375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   QStar _annIannotatedTree q_-                   {-# LINE 11381 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   QStar _annIoriginalTree q_-                   {-# LINE 11387 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 11393 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 11399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_PositionalArg :: T_Annotation ->-                                Integer ->-                                T_ScalarExpr-_sem_ScalarExpr_PositionalArg ann_ p_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 11458 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 11464 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 11470 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 11476 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 11487 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 11493 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 734, column 9)-              _tpe =-                  ({-# LINE 734 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 11499 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PositionalArg _annIannotatedTree p_-                   {-# LINE 11505 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PositionalArg _annIoriginalTree p_-                   {-# LINE 11511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 11517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 11523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Placeholder :: T_Annotation ->-                              T_ScalarExpr-_sem_ScalarExpr_Placeholder ann_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 11581 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 11587 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 11593 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 11599 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 11610 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 11616 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 300, column 10)-              _tpe =-                  ({-# LINE 300 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Right $ mkTypeExtraNN UnknownType-                   {-# LINE 11622 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Placeholder _annIannotatedTree-                   {-# LINE 11628 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Placeholder _annIoriginalTree-                   {-# LINE 11634 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 11640 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 11646 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11652 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11658 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_PrefixOp :: T_Annotation ->-                           T_Name ->-                           T_ScalarExpr ->-                           T_ScalarExpr-_sem_ScalarExpr_PrefixOp ann_ opName_ arg_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _argOodbcFunction :: Bool-              _opNameOtpe :: (Either [TypeError] TypeExtra)-              _tpe :: (Either [TypeError] TypeExtra)-              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))-              _argOexpectedType :: (Maybe TypeExtra)-              _argOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _opNameOcat :: Catalog-              _opNameOflags :: TypeCheckFlags-              _opNameOimCast :: (Maybe TypeExtra)-              _argOassignmentCastContext :: Bool-              _argOcat :: Catalog-              _argOdownEnv :: Environment-              _argOflags :: TypeCheckFlags-              _argOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _opNameIannotatedTree :: Name-              _opNameIoriginalTree :: Name-              _argIannotatedTree :: ScalarExpr-              _argIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _argIoriginalTree :: ScalarExpr-              _argIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 11726 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 11732 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 11738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 11744 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 11755 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 11761 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 175, column 26)-              _argOodbcFunction =-                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 11767 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 210, column 9)-              _opNameOtpe =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 11773 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 364, column 10)-              _tpe =-                  ({-# LINE 364 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   fmap snd _ttpe-                   {-# LINE 11779 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 433, column 10)-              _ttpe =-                  ({-# LINE 433 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals [_argIoriginalTree]) [_argIupType]-                   {-# LINE 11785 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 434, column 10)-              _argOexpectedType =-                  ({-# LINE 434 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _ttpe     of-                     Right ([t],_) -> Just t-                     _ -> Nothing-                   {-# LINE 11793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 456, column 9)-              _argOexpectedCast =-                  ({-# LINE 456 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 11799 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PrefixOp _annIannotatedTree _opNameIannotatedTree _argIannotatedTree-                   {-# LINE 11805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PrefixOp _annIoriginalTree _opNameIoriginalTree _argIoriginalTree-                   {-# LINE 11811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 11817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 11823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11829 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11835 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11841 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11847 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 11853 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 11859 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 11865 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 11871 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 11877 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 11883 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _opNameIannotatedTree,_opNameIoriginalTree) =-                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe-              ( _argIannotatedTree,_argIcolExprs,_argIoriginalTree,_argIupType) =-                  arg_ _argOassignmentCastContext _argOcat _argOdownEnv _argOexpectedCast _argOexpectedType _argOflags _argOimCast _argOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_PostfixOp :: T_Annotation ->-                            T_Name ->-                            T_ScalarExpr ->-                            T_ScalarExpr-_sem_ScalarExpr_PostfixOp ann_ opName_ arg_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _argOodbcFunction :: Bool-              _opNameOtpe :: (Either [TypeError] TypeExtra)-              _tpe :: (Either [TypeError] TypeExtra)-              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))-              _argOexpectedType :: (Maybe TypeExtra)-              _argOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _opNameOcat :: Catalog-              _opNameOflags :: TypeCheckFlags-              _opNameOimCast :: (Maybe TypeExtra)-              _argOassignmentCastContext :: Bool-              _argOcat :: Catalog-              _argOdownEnv :: Environment-              _argOflags :: TypeCheckFlags-              _argOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _opNameIannotatedTree :: Name-              _opNameIoriginalTree :: Name-              _argIannotatedTree :: ScalarExpr-              _argIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _argIoriginalTree :: ScalarExpr-              _argIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 11955 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 11961 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 11967 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 11973 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 11984 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 11990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 175, column 26)-              _argOodbcFunction =-                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 11996 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 210, column 9)-              _opNameOtpe =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 12002 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 364, column 10)-              _tpe =-                  ({-# LINE 364 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   fmap snd _ttpe-                   {-# LINE 12008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 433, column 10)-              _ttpe =-                  ({-# LINE 433 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals [_argIoriginalTree]) [_argIupType]-                   {-# LINE 12014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 434, column 10)-              _argOexpectedType =-                  ({-# LINE 434 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _ttpe     of-                     Right ([t],_) -> Just t-                     _ -> Nothing-                   {-# LINE 12022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 456, column 9)-              _argOexpectedCast =-                  ({-# LINE 456 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PostfixOp _annIannotatedTree _opNameIannotatedTree _argIannotatedTree-                   {-# LINE 12034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PostfixOp _annIoriginalTree _opNameIoriginalTree _argIoriginalTree-                   {-# LINE 12040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 12046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 12052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12070 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12076 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12082 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 12088 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12094 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 12100 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12106 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12112 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _opNameIannotatedTree,_opNameIoriginalTree) =-                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe-              ( _argIannotatedTree,_argIcolExprs,_argIoriginalTree,_argIupType) =-                  arg_ _argOassignmentCastContext _argOcat _argOdownEnv _argOexpectedCast _argOexpectedType _argOflags _argOimCast _argOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_BinaryOp :: T_Annotation ->-                           T_Name ->-                           T_ScalarExpr ->-                           T_ScalarExpr ->-                           T_ScalarExpr-_sem_ScalarExpr_BinaryOp ann_ opName_ arg0_ arg1_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _arg0OodbcFunction :: Bool-              _arg1OodbcFunction :: Bool-              _opNameOtpe :: (Either [TypeError] TypeExtra)-              _tpe :: (Either [TypeError] TypeExtra)-              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))-              _arg0OexpectedType :: (Maybe TypeExtra)-              _arg1OexpectedType :: (Maybe TypeExtra)-              _arg0OexpectedCast :: Bool-              _arg1OexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _opNameOcat :: Catalog-              _opNameOflags :: TypeCheckFlags-              _opNameOimCast :: (Maybe TypeExtra)-              _arg0OassignmentCastContext :: Bool-              _arg0Ocat :: Catalog-              _arg0OdownEnv :: Environment-              _arg0Oflags :: TypeCheckFlags-              _arg0OimCast :: (Maybe TypeExtra)-              _arg1OassignmentCastContext :: Bool-              _arg1Ocat :: Catalog-              _arg1OdownEnv :: Environment-              _arg1Oflags :: TypeCheckFlags-              _arg1OimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _opNameIannotatedTree :: Name-              _opNameIoriginalTree :: Name-              _arg0IannotatedTree :: ScalarExpr-              _arg0IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _arg0IoriginalTree :: ScalarExpr-              _arg0IupType :: (Maybe TypeExtra)-              _arg1IannotatedTree :: ScalarExpr-              _arg1IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _arg1IoriginalTree :: ScalarExpr-              _arg1IupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 12197 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 12203 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 12209 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 12215 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 12226 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 12232 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 176, column 16)-              _arg0OodbcFunction =-                  ({-# LINE 176 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12238 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 177, column 16)-              _arg1OodbcFunction =-                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12244 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 210, column 9)-              _opNameOtpe =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 12250 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 364, column 10)-              _tpe =-                  ({-# LINE 364 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   fmap snd _ttpe-                   {-# LINE 12256 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 425, column 10)-              _ttpe =-                  ({-# LINE 425 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   tcAppLike (tcfDialect _lhsIflags)-                             _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals [_arg0IoriginalTree,_arg1IoriginalTree])-                             [_arg0IupType,_arg1IupType]-                   {-# LINE 12264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 428, column 10)-              (_arg0OexpectedType,_arg1OexpectedType) =-                  ({-# LINE 428 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _ttpe     of-                     Right ([t0,t1],_) -> (Just t0,Just t1)-                     _ -> (Nothing,Nothing)-                   {-# LINE 12272 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 458, column 9)-              _arg0OexpectedCast =-                  ({-# LINE 458 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12278 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 459, column 9)-              _arg1OexpectedCast =-                  ({-# LINE 459 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12284 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   BinaryOp _annIannotatedTree _opNameIannotatedTree _arg0IannotatedTree _arg1IannotatedTree-                   {-# LINE 12290 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   BinaryOp _annIoriginalTree _opNameIoriginalTree _arg0IoriginalTree _arg1IoriginalTree-                   {-# LINE 12296 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 12302 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 12308 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12314 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12320 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12326 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12332 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12338 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg0OassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 12344 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg0Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12350 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg0OdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 12356 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg0Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12362 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg0OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12368 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg1OassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 12374 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12380 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg1OdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 12386 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12392 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _arg1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12398 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _opNameIannotatedTree,_opNameIoriginalTree) =-                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe-              ( _arg0IannotatedTree,_arg0IcolExprs,_arg0IoriginalTree,_arg0IupType) =-                  arg0_ _arg0OassignmentCastContext _arg0Ocat _arg0OdownEnv _arg0OexpectedCast _arg0OexpectedType _arg0Oflags _arg0OimCast _arg0OodbcFunction-              ( _arg1IannotatedTree,_arg1IcolExprs,_arg1IoriginalTree,_arg1IupType) =-                  arg1_ _arg1OassignmentCastContext _arg1Ocat _arg1OdownEnv _arg1OexpectedCast _arg1OexpectedType _arg1Oflags _arg1OimCast _arg1OodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_SpecialOp :: T_Annotation ->-                            T_Name ->-                            T_ScalarExprList ->-                            T_ScalarExpr-_sem_ScalarExpr_SpecialOp ann_ opName_ args_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _opNameOtpe :: (Either [TypeError] TypeExtra)-              _tpe :: (Either [TypeError] TypeExtra)-              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))-              _argsOexpectedTypes :: ([TypeExtra])-              _argsOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _opNameOcat :: Catalog-              _opNameOflags :: TypeCheckFlags-              _opNameOimCast :: (Maybe TypeExtra)-              _argsOassignmentCastContext :: Bool-              _argsOcat :: Catalog-              _argsOdownEnv :: Environment-              _argsOflags :: TypeCheckFlags-              _argsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _opNameIannotatedTree :: Name-              _opNameIoriginalTree :: Name-              _argsIannotatedTree :: ScalarExprList-              _argsIoriginalTree :: ScalarExprList-              _argsIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 12470 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 12476 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 12482 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 12488 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 12499 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 12505 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 210, column 9)-              _opNameOtpe =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 12511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 364, column 10)-              _tpe =-                  ({-# LINE 364 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   fmap snd _ttpe-                   {-# LINE 12517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 439, column 10)-              _ttpe =-                  ({-# LINE 439 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals _argsIoriginalTree) _argsIupTypes-                   {-# LINE 12523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 440, column 10)-              _argsOexpectedTypes =-                  ({-# LINE 440 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const []) id $ fmap fst _ttpe-                   {-# LINE 12529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 454, column 9)-              _argsOexpectedCast =-                  ({-# LINE 454 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SpecialOp _annIannotatedTree _opNameIannotatedTree _argsIannotatedTree-                   {-# LINE 12541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SpecialOp _annIoriginalTree _opNameIoriginalTree _argsIoriginalTree-                   {-# LINE 12547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 12553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 12559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _opNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 12595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 12607 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _opNameIannotatedTree,_opNameIoriginalTree) =-                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe-              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =-                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Extract :: T_Annotation ->-                          ExtractField ->-                          T_ScalarExpr ->-                          T_ScalarExpr-_sem_ScalarExpr_Extract ann_ field_ e_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _eOodbcFunction :: Bool-              _eOexpectedType :: (Maybe TypeExtra)-              _eOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _eOassignmentCastContext :: Bool-              _eOcat :: Catalog-              _eOdownEnv :: Environment-              _eOflags :: TypeCheckFlags-              _eOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _eIannotatedTree :: ScalarExpr-              _eIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _eIoriginalTree :: ScalarExpr-              _eIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 12683 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 12689 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 12695 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 12701 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 12712 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 12718 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 171, column 15)-              _eOodbcFunction =-                  ({-# LINE 171 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 284, column 9)-              _tpe =-                  ({-# LINE 284 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   x <- maybe (Left []) Right _eIupType-                   if (teType x) `elem` (map ScalarType $ diDatetimeTypes $ tcfDialect _lhsIflags)-                     then do-                          i <- ScalarType <$> _dialectTypeName     "int"-                          return $ TypeExtra i Nothing Nothing $ teNullable x-                     else Left [NoMatchingOperator "extract" [teType x]]-                   {-# LINE 12736 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 292, column 9)-              _eOexpectedType =-                  ({-# LINE 292 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   x <- _eIupType-                   either (const Nothing)-                          (Just . TypeExtra (teType x) Nothing Nothing . teNullable)-                          _tpe-                   {-# LINE 12746 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 298, column 9)-              _eOexpectedCast =-                  ({-# LINE 298 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12752 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Extract _annIannotatedTree field_ _eIannotatedTree-                   {-# LINE 12758 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Extract _annIoriginalTree field_ _eIoriginalTree-                   {-# LINE 12764 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 12770 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 12776 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12782 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12788 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _eOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 12794 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _eOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 12800 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _eOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 12806 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _eOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 12812 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _eOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 12818 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _eIannotatedTree,_eIcolExprs,_eIoriginalTree,_eIupType) =-                  e_ _eOassignmentCastContext _eOcat _eOdownEnv _eOexpectedCast _eOexpectedType _eOflags _eOimCast _eOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_App :: T_Annotation ->-                      T_Name ->-                      T_ScalarExprList ->-                      T_ScalarExpr-_sem_ScalarExpr_App ann_ funName_ args_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _funNameOtpe :: (Either [TypeError] TypeExtra)-              _tpe :: (Either [TypeError] TypeExtra)-              _argsOexpectedTypes :: ([TypeExtra])-              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))-              _argsOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _funNameOcat :: Catalog-              _funNameOflags :: TypeCheckFlags-              _funNameOimCast :: (Maybe TypeExtra)-              _argsOassignmentCastContext :: Bool-              _argsOcat :: Catalog-              _argsOdownEnv :: Environment-              _argsOflags :: TypeCheckFlags-              _argsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _funNameIannotatedTree :: Name-              _funNameIoriginalTree :: Name-              _argsIannotatedTree :: ScalarExprList-              _argsIoriginalTree :: ScalarExprList-              _argsIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 12886 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 12892 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 12898 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 12904 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 12915 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 12921 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 208, column 9)-              _funNameOtpe =-                  ({-# LINE 208 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 12927 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 364, column 10)-              _tpe =-                  ({-# LINE 364 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   fmap snd _ttpe-                   {-# LINE 12933 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 366, column 10)-              _argsOexpectedTypes =-                  ({-# LINE 366 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const []) id $ fmap fst _ttpe-                   {-# LINE 12939 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 380, column 10)-              _funName =-                  ({-# LINE 380 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   let y = if _lhsIodbcFunction-                           then let f [] = []-                                    f [Nmc x] = [Nmc $ "!odbc-" ++ x]-                                    f [QNmc x] = [QNmc $ "!odbc-" ++ x]-                                    f [x] = [x]-                                    f (x:xs) = x:f xs-                                in (\(Name a nms) -> Name a (f nms)) _funNameIoriginalTree-                           else _funNameIoriginalTree-                   in                    y-                   {-# LINE 12953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 403, column 10)-              _ttpe =-                  ({-# LINE 403 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _originalTree of-                     (App _ (Name _ [Nmc "count"]) [Star _]) ->-                         tcAppLike (tcfDialect _lhsIflags)-                                   _lhsIcat (nameComponents _funName    )-                                   (getMaybeIntsFromLiterals _argsIoriginalTree)-                                   [Just $ mkTypeExtraNN UnknownType]-                     (App _ (Name _ [Nmc n]) [_,Identifier _ (Name _ [Nmc tyi])])-                         | _lhsIodbcFunction && map toLower n == "convert" -> do-                         (ts,_r) <- do-                                   t <- _dialectTypeName     "int"-                                   tcAppLike (tcfDialect _lhsIflags)-                                     _lhsIcat (nameComponents _funName    ) (getMaybeIntsFromLiterals _argsIoriginalTree)-                                     [Just $ mkTypeExtraNN UnknownType, Just $ mkTypeExtraNN $ ScalarType t]-                         r' <- maybe (Left [UnrecognisedIdentifier $ T.pack tyi]) (Right . mkTypeExtra)-                                  $ lookup (map toLower tyi) odbcConvertTypes-                         Right (ts, r')-                     _ -> tcAppLike (tcfDialect _lhsIflags)-                                    _lhsIcat (nameComponents _funName    ) (getMaybeIntsFromLiterals _argsIoriginalTree) _argsIupTypes-                   {-# LINE 12976 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 454, column 9)-              _argsOexpectedCast =-                  ({-# LINE 454 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 12982 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   App _annIannotatedTree _funNameIannotatedTree _argsIannotatedTree-                   {-# LINE 12988 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   App _annIoriginalTree _funNameIoriginalTree _argsIoriginalTree-                   {-# LINE 12994 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 13000 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 13006 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13012 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13018 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _funNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13024 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _funNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13030 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _funNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13036 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 13042 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13048 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13054 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13060 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13066 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _funNameIannotatedTree,_funNameIoriginalTree) =-                  funName_ _funNameOcat _funNameOflags _funNameOimCast _funNameOtpe-              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =-                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_AggregateApp :: T_Annotation ->-                               Distinct ->-                               T_ScalarExpr ->-                               T_ScalarExprDirectionPairList ->-                               T_ScalarExpr-_sem_ScalarExpr_AggregateApp ann_ aggDistinct_ fn_ orderBy_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _fnOodbcFunction :: Bool-              _fnOexpectedCast :: Bool-              _fnOexpectedType :: (Maybe TypeExtra)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _fnOassignmentCastContext :: Bool-              _fnOcat :: Catalog-              _fnOdownEnv :: Environment-              _fnOflags :: TypeCheckFlags-              _fnOimCast :: (Maybe TypeExtra)-              _orderByOcat :: Catalog-              _orderByOdownEnv :: Environment-              _orderByOflags :: TypeCheckFlags-              _orderByOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _fnIannotatedTree :: ScalarExpr-              _fnIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _fnIoriginalTree :: ScalarExpr-              _fnIupType :: (Maybe TypeExtra)-              _orderByIannotatedTree :: ScalarExprDirectionPairList-              _orderByIoriginalTree :: ScalarExprDirectionPairList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 13137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 13143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 13149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 13155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 13166 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 13172 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 178, column 20)-              _fnOodbcFunction =-                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13178 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 442, column 10)-              _tpe =-                  ({-# LINE 442 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _fnIoriginalTree of-                     (App _ fnm@(Name _ [Nmc "count"]) [Star _]) ->-                          fmap snd $ tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents fnm) [] [Just $ mkTypeExtraNN UnknownType]-                     _ -> maybe (Left []) Right _fnIupType-                   {-# LINE 13187 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 461, column 9)-              _fnOexpectedCast =-                  ({-# LINE 461 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13193 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 752, column 28)-              _fnOexpectedType =-                  ({-# LINE 752 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 13199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AggregateApp _annIannotatedTree aggDistinct_ _fnIannotatedTree _orderByIannotatedTree-                   {-# LINE 13205 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AggregateApp _annIoriginalTree aggDistinct_ _fnIoriginalTree _orderByIoriginalTree-                   {-# LINE 13211 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 13217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 13223 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13229 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13235 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 13241 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13247 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13253 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13259 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13265 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13271 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOdownEnv =-                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _fnIannotatedTree,_fnIcolExprs,_fnIoriginalTree,_fnIupType) =-                  fn_ _fnOassignmentCastContext _fnOcat _fnOdownEnv _fnOexpectedCast _fnOexpectedType _fnOflags _fnOimCast _fnOodbcFunction-              ( _orderByIannotatedTree,_orderByIoriginalTree) =-                  orderBy_ _orderByOcat _orderByOdownEnv _orderByOflags _orderByOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_WindowApp :: T_Annotation ->-                            T_ScalarExpr ->-                            T_ScalarExprList ->-                            T_ScalarExprDirectionPairList ->-                            (Maybe FrameClause) ->-                            T_ScalarExpr-_sem_ScalarExpr_WindowApp ann_ fn_ partitionBy_ orderBy_ frm_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _fnOodbcFunction :: Bool-              _fnOexpectedCast :: Bool-              _partitionByOexpectedCast :: Bool-              _fnOexpectedType :: (Maybe TypeExtra)-              _partitionByOexpectedTypes :: ([TypeExtra])-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _fnOassignmentCastContext :: Bool-              _fnOcat :: Catalog-              _fnOdownEnv :: Environment-              _fnOflags :: TypeCheckFlags-              _fnOimCast :: (Maybe TypeExtra)-              _partitionByOassignmentCastContext :: Bool-              _partitionByOcat :: Catalog-              _partitionByOdownEnv :: Environment-              _partitionByOflags :: TypeCheckFlags-              _partitionByOimCast :: (Maybe TypeExtra)-              _orderByOcat :: Catalog-              _orderByOdownEnv :: Environment-              _orderByOflags :: TypeCheckFlags-              _orderByOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _fnIannotatedTree :: ScalarExpr-              _fnIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _fnIoriginalTree :: ScalarExpr-              _fnIupType :: (Maybe TypeExtra)-              _partitionByIannotatedTree :: ScalarExprList-              _partitionByIoriginalTree :: ScalarExprList-              _partitionByIupTypes :: ([Maybe TypeExtra])-              _orderByIannotatedTree :: ScalarExprDirectionPairList-              _orderByIoriginalTree :: ScalarExprDirectionPairList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 13371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 13377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 13383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 13389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 13400 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 13406 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 179, column 17)-              _fnOodbcFunction =-                  ({-# LINE 179 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13412 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 448, column 10)-              _tpe =-                  ({-# LINE 448 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right _fnIupType-                   {-# LINE 13418 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 461, column 9)-              _fnOexpectedCast =-                  ({-# LINE 461 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13424 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 464, column 9)-              _partitionByOexpectedCast =-                  ({-# LINE 464 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13430 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 752, column 28)-              _fnOexpectedType =-                  ({-# LINE 752 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 13436 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 774, column 15)-              _partitionByOexpectedTypes =-                  ({-# LINE 774 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   []-                   {-# LINE 13442 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WindowApp _annIannotatedTree _fnIannotatedTree _partitionByIannotatedTree _orderByIannotatedTree frm_-                   {-# LINE 13448 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WindowApp _annIoriginalTree _fnIoriginalTree _partitionByIoriginalTree _orderByIoriginalTree frm_-                   {-# LINE 13454 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 13460 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 13466 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13472 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13478 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 13484 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13490 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13496 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13502 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13508 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionByOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 13514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionByOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13520 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionByOdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13526 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionByOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13532 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionByOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13538 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13544 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOdownEnv =-                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13550 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13556 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _orderByOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13562 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _fnIannotatedTree,_fnIcolExprs,_fnIoriginalTree,_fnIupType) =-                  fn_ _fnOassignmentCastContext _fnOcat _fnOdownEnv _fnOexpectedCast _fnOexpectedType _fnOflags _fnOimCast _fnOodbcFunction-              ( _partitionByIannotatedTree,_partitionByIoriginalTree,_partitionByIupTypes) =-                  partitionBy_ _partitionByOassignmentCastContext _partitionByOcat _partitionByOdownEnv _partitionByOexpectedCast _partitionByOexpectedTypes _partitionByOflags _partitionByOimCast-              ( _orderByIannotatedTree,_orderByIoriginalTree) =-                  orderBy_ _orderByOcat _orderByOdownEnv _orderByOflags _orderByOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Cast :: T_Annotation ->-                       T_ScalarExpr ->-                       T_TypeName ->-                       T_ScalarExpr-_sem_ScalarExpr_Cast ann_ expr_ tn_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _exprOodbcFunction :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _exprOassignmentCastContext :: Bool-              _exprOcat :: Catalog-              _exprOdownEnv :: Environment-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _tnOcat :: Catalog-              _tnOflags :: TypeCheckFlags-              _tnOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              _tnIannotatedTree :: TypeName-              _tnInamedType :: (Maybe TypeExtra)-              _tnIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 13634 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 13640 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 13646 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 13652 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 13663 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 13669 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 172, column 12)-              _exprOodbcFunction =-                  ({-# LINE 172 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13675 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 272, column 10)-              _tpe =-                  ({-# LINE 272 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   let nullability = fromMaybe False $ teNullable <$> _exprIupType-                       setNullability te = te{teNullable = nullability}-                   in maybe (Left []) (Right . setNullability) _tnInamedType-                   {-# LINE 13683 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 276, column 10)-              _exprOexpectedType =-                  ({-# LINE 276 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 13689 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 277, column 10)-              _exprOexpectedCast =-                  ({-# LINE 277 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13695 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Cast _annIannotatedTree _exprIannotatedTree _tnIannotatedTree-                   {-# LINE 13701 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Cast _annIoriginalTree _exprIoriginalTree _tnIoriginalTree-                   {-# LINE 13707 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 13713 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 13719 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13725 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13731 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 13737 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13743 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13749 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13755 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13761 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13767 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13773 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13779 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-              ( _tnIannotatedTree,_tnInamedType,_tnIoriginalTree) =-                  tn_ _tnOcat _tnOflags _tnOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_ImplicitCast :: T_Annotation ->-                               T_ScalarExpr ->-                               TypeExtra ->-                               T_ScalarExpr-_sem_ScalarExpr_ImplicitCast ann_ expr_ te_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _exprOodbcFunction :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _exprOassignmentCastContext :: Bool-              _exprOcat :: Catalog-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 13843 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 13849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 13855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 13861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 13872 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 13878 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 173, column 20)-              _exprOodbcFunction =-                  ({-# LINE 173 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 13884 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 279, column 9)-              _tpe =-                  ({-# LINE 279 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Right te_-                   {-# LINE 13890 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 280, column 9)-              _exprOexpectedType =-                  ({-# LINE 280 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 13896 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ImplicitCast _annIannotatedTree _exprIannotatedTree te_-                   {-# LINE 13902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ImplicitCast _annIoriginalTree _exprIoriginalTree te_-                   {-# LINE 13908 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 13914 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 13920 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13926 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13932 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 13938 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 13944 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 13950 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOexpectedCast =-                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 13956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 13962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 13968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Case :: T_Annotation ->-                       T_CaseScalarExprListScalarExprPairList ->-                       T_MaybeScalarExpr ->-                       T_ScalarExpr-_sem_ScalarExpr_Case ann_ cases_ els_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _casesOwhenExpectedType :: (Maybe TypeExtra)-              _casesOthenExpectedType :: (Maybe TypeExtra)-              _elsOexpectedType :: (Maybe TypeExtra)-              _elsOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _casesOcat :: Catalog-              _casesOdownEnv :: Environment-              _casesOflags :: TypeCheckFlags-              _casesOimCast :: (Maybe TypeExtra)-              _elsOassignmentCastContext :: Bool-              _elsOcat :: Catalog-              _elsOdownEnv :: Environment-              _elsOflags :: TypeCheckFlags-              _elsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _casesIannotatedTree :: CaseScalarExprListScalarExprPairList-              _casesIoriginalTree :: CaseScalarExprListScalarExprPairList-              _casesIthenTypes :: ([Maybe TypeExtra])-              _casesIupTypes :: ([Maybe TypeExtra])-              _casesIwhenTypes :: ([[Maybe TypeExtra]])-              _elsIannotatedTree :: MaybeScalarExpr-              _elsIoriginalTree :: MaybeScalarExpr-              _elsIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 14039 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 14045 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14051 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 14057 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 14068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 14074 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 558, column 9)-              _whenTypes =-                  ({-# LINE 558 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _casesIwhenTypes-                   {-# LINE 14080 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 559, column 9)-              _thenTypes =-                  ({-# LINE 559 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIupType-                   {-# LINE 14086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 561, column 9)-              _tpe =-                  ({-# LINE 561 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   wt <- mapM (maybe (Left []) Right) $ concat _whenTypes-                   bt <- ScalarType <$> _dialectTypeName     "boolean"-                   when (any ((/= bt) . teType) wt)-                       $ Left [WrongTypes bt $ map teType wt]-                   tt <- mapM (maybe (Left []) Right) _thenTypes-                   tse <- resolveResultSetTypeExtra _lhsIcat tt-                   return $ if isNothing _elsIoriginalTree-                            then tse{teNullable=True}-                            else tse-                   {-# LINE 14101 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 573, column 9)-              _casesOwhenExpectedType =-                  ({-# LINE 573 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   ws <- sequence $ concat _whenTypes-                   w <- either (const Nothing) Just $ resolveResultSetTypeExtra _lhsIcat ws-                   bt <- ScalarType <$> either (const Nothing) Just (_dialectTypeName     "boolean")-                   Just $ TypeExtra bt Nothing Nothing $ teNullable w-                   {-# LINE 14111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 579, column 9)-              _casesOthenExpectedType =-                  ({-# LINE 579 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 580, column 9)-              _elsOexpectedType =-                  ({-# LINE 580 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 581, column 9)-              _elsOexpectedCast =-                  ({-# LINE 581 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   True-                   {-# LINE 14129 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Case _annIannotatedTree _casesIannotatedTree _elsIannotatedTree-                   {-# LINE 14135 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Case _annIoriginalTree _casesIoriginalTree _elsIoriginalTree-                   {-# LINE 14141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 14147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 14153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14171 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOdownEnv =-                  ({-# LINE 553 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 14195 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14201 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14207 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14213 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14219 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _casesIannotatedTree,_casesIoriginalTree,_casesIthenTypes,_casesIupTypes,_casesIwhenTypes) =-                  cases_ _casesOcat _casesOdownEnv _casesOflags _casesOimCast _casesOthenExpectedType _casesOwhenExpectedType-              ( _elsIannotatedTree,_elsIoriginalTree,_elsIupType) =-                  els_ _elsOassignmentCastContext _elsOcat _elsOdownEnv _elsOexpectedCast _elsOexpectedType _elsOflags _elsOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_CaseSimple :: T_Annotation ->-                             T_ScalarExpr ->-                             T_CaseScalarExprListScalarExprPairList ->-                             T_MaybeScalarExpr ->-                             T_ScalarExpr-_sem_ScalarExpr_CaseSimple ann_ value_ cases_ els_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _valueOodbcFunction :: Bool-              _casesOwhenExpectedType :: (Maybe TypeExtra)-              _valueOexpectedType :: (Maybe TypeExtra)-              _valueOexpectedCast :: Bool-              _casesOthenExpectedType :: (Maybe TypeExtra)-              _elsOexpectedType :: (Maybe TypeExtra)-              _elsOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _valueOassignmentCastContext :: Bool-              _valueOcat :: Catalog-              _valueOdownEnv :: Environment-              _valueOflags :: TypeCheckFlags-              _valueOimCast :: (Maybe TypeExtra)-              _casesOcat :: Catalog-              _casesOdownEnv :: Environment-              _casesOflags :: TypeCheckFlags-              _casesOimCast :: (Maybe TypeExtra)-              _elsOassignmentCastContext :: Bool-              _elsOcat :: Catalog-              _elsOdownEnv :: Environment-              _elsOflags :: TypeCheckFlags-              _elsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _valueIannotatedTree :: ScalarExpr-              _valueIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _valueIoriginalTree :: ScalarExpr-              _valueIupType :: (Maybe TypeExtra)-              _casesIannotatedTree :: CaseScalarExprListScalarExprPairList-              _casesIoriginalTree :: CaseScalarExprListScalarExprPairList-              _casesIthenTypes :: ([Maybe TypeExtra])-              _casesIupTypes :: ([Maybe TypeExtra])-              _casesIwhenTypes :: ([[Maybe TypeExtra]])-              _elsIannotatedTree :: MaybeScalarExpr-              _elsIoriginalTree :: MaybeScalarExpr-              _elsIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 14305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 14311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14317 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 14323 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 14334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 14340 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 174, column 18)-              _valueOodbcFunction =-                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 14346 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 558, column 9)-              _whenTypes =-                  ({-# LINE 558 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _casesIwhenTypes-                   {-# LINE 14352 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 559, column 9)-              _thenTypes =-                  ({-# LINE 559 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIupType-                   {-# LINE 14358 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 583, column 9)-              _whent =-                  ({-# LINE 583 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   wt <- mapM (maybe (Left []) Right) $ concat _whenTypes-                   vt <- maybe (Left []) Right _valueIupType-                   resolveResultSetTypeExtra _lhsIcat (vt : wt)-                   {-# LINE 14367 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 588, column 9)-              _tpe =-                  ({-# LINE 588 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   _ <- _whent-                   tt <- mapM (maybe (Left []) Right) _thenTypes-                   resolveResultSetTypeExtra _lhsIcat tt-                   {-# LINE 14376 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 593, column 9)-              _casesOwhenExpectedType =-                  ({-# LINE 593 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _whent-                   {-# LINE 14382 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 594, column 9)-              _valueOexpectedType =-                  ({-# LINE 594 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _whent-                   {-# LINE 14388 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 595, column 9)-              _valueOexpectedCast =-                  ({-# LINE 595 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 14394 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 596, column 9)-              _casesOthenExpectedType =-                  ({-# LINE 596 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14400 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 597, column 9)-              _elsOexpectedType =-                  ({-# LINE 597 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14406 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 598, column 9)-              _elsOexpectedCast =-                  ({-# LINE 598 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   True-                   {-# LINE 14412 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CaseSimple _annIannotatedTree _valueIannotatedTree _casesIannotatedTree _elsIannotatedTree-                   {-# LINE 14418 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CaseSimple _annIoriginalTree _valueIoriginalTree _casesIoriginalTree _elsIoriginalTree-                   {-# LINE 14424 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 14430 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 14436 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14442 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14448 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 14454 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14460 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14466 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14472 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14478 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14484 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOdownEnv =-                  ({-# LINE 553 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14490 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14496 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14502 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 14508 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14520 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14526 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14532 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _valueIannotatedTree,_valueIcolExprs,_valueIoriginalTree,_valueIupType) =-                  value_ _valueOassignmentCastContext _valueOcat _valueOdownEnv _valueOexpectedCast _valueOexpectedType _valueOflags _valueOimCast _valueOodbcFunction-              ( _casesIannotatedTree,_casesIoriginalTree,_casesIthenTypes,_casesIupTypes,_casesIwhenTypes) =-                  cases_ _casesOcat _casesOdownEnv _casesOflags _casesOimCast _casesOthenExpectedType _casesOwhenExpectedType-              ( _elsIannotatedTree,_elsIoriginalTree,_elsIupType) =-                  els_ _elsOassignmentCastContext _elsOcat _elsOdownEnv _elsOexpectedCast _elsOexpectedType _elsOflags _elsOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Parens :: T_Annotation ->-                         T_ScalarExpr ->-                         T_ScalarExpr-_sem_ScalarExpr_Parens ann_ ex_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _exOodbcFunction :: Bool-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _exOassignmentCastContext :: Bool-              _exOcat :: Catalog-              _exOdownEnv :: Environment-              _exOexpectedCast :: Bool-              _exOexpectedType :: (Maybe TypeExtra)-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: ScalarExpr-              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exIoriginalTree :: ScalarExpr-              _exIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 14597 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 14603 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14609 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 14615 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 14626 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 14632 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 181, column 14)-              _exOodbcFunction =-                  ({-# LINE 181 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 14638 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 614, column 5)-              _tpe =-                  ({-# LINE 614 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right _exIupType-                   {-# LINE 14644 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Parens _annIannotatedTree _exIannotatedTree-                   {-# LINE 14650 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Parens _annIoriginalTree _exIoriginalTree-                   {-# LINE 14656 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 14662 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 14668 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14674 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14680 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 14686 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14692 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14698 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOexpectedCast =-                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 14704 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOexpectedType =-                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 14710 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14716 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14722 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_InPredicate :: T_Annotation ->-                              T_ScalarExpr ->-                              Bool ->-                              T_InList ->-                              T_ScalarExpr-_sem_ScalarExpr_InPredicate ann_ expr_ i_ list_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _exprOodbcFunction :: Bool-              _rt :: (Either [TypeError] TypeExtra)-              _listOexpectedType :: (Maybe TypeExtra)-              _exprOexpectedType :: (Maybe TypeExtra)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _exprOassignmentCastContext :: Bool-              _exprOcat :: Catalog-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _listOcat :: Catalog-              _listOdownEnv :: Environment-              _listOexpectedCast :: Bool-              _listOflags :: TypeCheckFlags-              _listOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              _listIannotatedTree :: InList-              _listIlistType :: (Either [TypeError] TypeExtra)-              _listIoriginalTree :: InList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 14795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 14801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 14807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 14813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 14824 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 14830 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 180, column 19)-              _exprOodbcFunction =-                  ({-# LINE 180 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 14836 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 668, column 9)-              _rt =-                  ({-# LINE 668 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   lt <- _listIlistType-                   expt <- maybe (Left []) Right _exprIupType-                   resolveResultSetTypeExtra _lhsIcat [expt, lt]-                   {-# LINE 14845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 672, column 9)-              _tpe =-                  ({-# LINE 672 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   r <- _rt-                   bt <- ScalarType <$> _dialectTypeName     "boolean"-                   return $ TypeExtra bt Nothing Nothing $ teNullable r-                   {-# LINE 14854 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 676, column 9)-              _listOexpectedType =-                  ({-# LINE 676 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _rt-                   {-# LINE 14860 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 677, column 9)-              _exprOexpectedType =-                  ({-# LINE 677 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _rt-                   {-# LINE 14866 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   InPredicate _annIannotatedTree _exprIannotatedTree i_ _listIannotatedTree-                   {-# LINE 14872 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   InPredicate _annIoriginalTree _exprIoriginalTree i_ _listIoriginalTree-                   {-# LINE 14878 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 14884 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 14890 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14896 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 14908 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14914 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14920 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOexpectedCast =-                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 14926 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14932 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14938 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _listOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 14944 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _listOdownEnv =-                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 14950 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _listOexpectedCast =-                  ({-# LINE 661 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 14956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _listOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 14962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _listOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 14968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-              ( _listIannotatedTree,_listIlistType,_listIoriginalTree) =-                  list_ _listOcat _listOdownEnv _listOexpectedCast _listOexpectedType _listOflags _listOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_Exists :: T_Annotation ->-                         T_QueryExpr ->-                         T_ScalarExpr-_sem_ScalarExpr_Exists ann_ sel_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _selOouterDownEnv :: (Maybe Environment)-              _selOexpectedType :: (Maybe [TypeExtra])-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _selOassignmentCastContext :: Bool-              _selOcat :: Catalog-              _selOflags :: TypeCheckFlags-              _selOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _selIannotatedTree :: QueryExpr-              _selIoriginalTree :: QueryExpr-              _selIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 15028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 15034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 15040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 15046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 15057 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 15063 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 627, column 9)-              _tpe =-                  ({-# LINE 627 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   (mkTypeExtraNN . ScalarType) <$> (_dialectTypeName     "boolean")-                   {-# LINE 15069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 649, column 9)-              _selOouterDownEnv =-                  ({-# LINE 649 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Just _lhsIdownEnv-                   {-# LINE 15075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 651, column 9)-              _selOexpectedType =-                  ({-# LINE 651 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   liftM (map snd) _selIupType-                   {-# LINE 15081 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Exists _annIannotatedTree _selIannotatedTree-                   {-# LINE 15087 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Exists _annIoriginalTree _selIoriginalTree-                   {-# LINE 15093 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 15099 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 15105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 15123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15129 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15135 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 15141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =-                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_ScalarSubQuery :: T_Annotation ->-                                 T_QueryExpr ->-                                 T_ScalarExpr-_sem_ScalarExpr_ScalarSubQuery ann_ sel_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _selOouterDownEnv :: (Maybe Environment)-              _selOexpectedType :: (Maybe [TypeExtra])-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _selOassignmentCastContext :: Bool-              _selOcat :: Catalog-              _selOflags :: TypeCheckFlags-              _selOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _selIannotatedTree :: QueryExpr-              _selIoriginalTree :: QueryExpr-              _selIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 15199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 15205 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 15211 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 15217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 15228 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 15234 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 637, column 9)-              _tpe =-                  ({-# LINE 637 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   do-                   selType <- maybe (Left []) Right _selIupType-                   case length selType of-                     0 -> Left [InternalError "no columns in scalar subquery?"]-                     1 -> Right $ snd $ head selType-                     _ -> Right $ mkTypeExtra $ AnonymousCompositeType-                             $ map (teType . snd) selType-                   {-# LINE 15246 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 647, column 9)-              _selOouterDownEnv =-                  ({-# LINE 647 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Just _lhsIdownEnv-                   {-# LINE 15252 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 651, column 9)-              _selOexpectedType =-                  ({-# LINE 651 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   liftM (map snd) _selIupType-                   {-# LINE 15258 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ScalarSubQuery _annIannotatedTree _selIannotatedTree-                   {-# LINE 15264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ScalarSubQuery _annIoriginalTree _selIoriginalTree-                   {-# LINE 15270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 15276 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 15282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15288 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15294 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 15300 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15306 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15312 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 15318 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =-                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_LiftApp :: T_Annotation ->-                          T_Name ->-                          LiftFlavour ->-                          T_ScalarExprList ->-                          T_ScalarExpr-_sem_ScalarExpr_LiftApp ann_ oper_ flav_ args_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _argsOexpectedCast :: Bool-              _argsOexpectedTypes :: ([TypeExtra])-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _operOcat :: Catalog-              _operOflags :: TypeCheckFlags-              _operOimCast :: (Maybe TypeExtra)-              _operOtpe :: (Either [TypeError] TypeExtra)-              _argsOassignmentCastContext :: Bool-              _argsOcat :: Catalog-              _argsOdownEnv :: Environment-              _argsOflags :: TypeCheckFlags-              _argsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _operIannotatedTree :: Name-              _operIoriginalTree :: Name-              _argsIannotatedTree :: ScalarExprList-              _argsIoriginalTree :: ScalarExprList-              _argsIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 15385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 15391 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 15397 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 15403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 15414 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 15420 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 454, column 9)-              _argsOexpectedCast =-                  ({-# LINE 454 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 15426 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 734, column 9)-              _tpe =-                  ({-# LINE 734 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 15432 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 771, column 13)-              _argsOexpectedTypes =-                  ({-# LINE 771 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   []-                   {-# LINE 15438 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   LiftApp _annIannotatedTree _operIannotatedTree flav_ _argsIannotatedTree-                   {-# LINE 15444 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   LiftApp _annIoriginalTree _operIoriginalTree flav_ _argsIoriginalTree-                   {-# LINE 15450 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 15456 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 15462 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15468 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15474 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15480 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15486 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 15492 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (from local)-              _operOtpe =-                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   _tpe-                   {-# LINE 15498 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 15504 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15510 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 15516 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15522 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 15528 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _operIannotatedTree,_operIoriginalTree) =-                  oper_ _operOcat _operOflags _operOimCast _operOtpe-              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =-                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_OdbcLiteral :: T_Annotation ->-                              OdbcLiteralType ->-                              String ->-                              T_ScalarExpr-_sem_ScalarExpr_OdbcLiteral ann_ olt_ val_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 15580 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 15586 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 15592 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 15598 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 15609 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 15615 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 306, column 10)-              _tpe =-                  ({-# LINE 306 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case olt_ of-                     OLDate -> (mkTypeExtra . ScalarType) <$> _dialectTypeName     "date"-                     OLTime -> (mkTypeExtra . ScalarType) <$> _dialectTypeName     "time"-                     OLTimestamp -> (mkTypeExtra . ScalarType) <$> _dialectTypeName     "timestamp"-                   {-# LINE 15624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   OdbcLiteral _annIannotatedTree olt_ val_-                   {-# LINE 15630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   OdbcLiteral _annIoriginalTree olt_ val_-                   {-# LINE 15636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 15642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 15648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_OdbcFunc :: T_Annotation ->-                           T_ScalarExpr ->-                           T_ScalarExpr-_sem_ScalarExpr_OdbcFunc ann_ ex_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe TypeExtra)-              _annOimCast :: (Maybe TypeExtra)-              _dialectTypeName :: (Text -> Either [TypeError] Text)-              _exOodbcFunction :: Bool-              _exOcat :: Catalog-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _exOassignmentCastContext :: Bool-              _exOdownEnv :: Environment-              _exOexpectedCast :: Bool-              _exOexpectedType :: (Maybe TypeExtra)-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: ScalarExpr-              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exIoriginalTree :: ScalarExpr-              _exIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)-              _lhsOcolExprs =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   let a = _annIoriginalTree-                       doStar is =-                         map (\((q,n),t) ->-                           let a' = a {anType = Just t}-                           in (Nmc $ T.unpack n, Just t,-                               Identifier a' $ Name a'-                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']-                                               ++ [Nmc $ T.unpack n])-                           ) is-                   in case _originalTree of-                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->-                          doStar is-                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->-                          doStar is-                       _ ->-                              [(columnName _originalTree,_upType,_annotatedTree)]-                   {-# LINE 15719 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)-              _annOtpe =-                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _tpe-                   {-# LINE 15725 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)-              _upType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 15731 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)-              _lhsOupType =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _upType-                   {-# LINE 15737 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)-              _annOimCast =-                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _upType     of-                      Nothing -> _lhsIexpectedType-                      Just upType -> do-                          expType <- _lhsIexpectedType-                          guard $ needsImplicitCast _lhsIexpectedCast upType expType-                          return $ implicitCastType _lhsIexpectedCast upType expType-                   {-# LINE 15748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)-              _dialectTypeName =-                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)-                   {-# LINE 15754 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 182, column 16)-              _exOodbcFunction =-                  ({-# LINE 182 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   True-                   {-# LINE 15760 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 312, column 10)-              _exOcat =-                  ({-# LINE 312 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   id _lhsIcat-                   {-# LINE 15766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 313, column 10)-              _tpe =-                  ({-# LINE 313 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _exIoriginalTree of-                     Extract {} -> maybe (Left []) Right _exIupType-                     App {} -> maybe (Left []) Right _exIupType-                     _ -> Left [OdbcFuncBadContent]-                   {-# LINE 15775 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   OdbcFunc _annIannotatedTree _exIannotatedTree-                   {-# LINE 15781 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   OdbcFunc _annIoriginalTree _exIoriginalTree-                   {-# LINE 15787 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 15793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 15799 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 15805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 15817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 15823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOexpectedCast =-                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 15829 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOexpectedType =-                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 15835 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 15841 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 15847 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExpr_AntiScalarExpr :: String ->-                                 T_ScalarExpr-_sem_ScalarExpr_AntiScalarExpr string_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast-       _lhsIodbcFunction ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _lhsOupType :: (Maybe TypeExtra)-              _lhsOannotatedTree :: ScalarExpr-              _lhsOoriginalTree :: ScalarExpr-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 232, column 21)-              _lhsOcolExprs =-                  ({-# LINE 232 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   [(Nmc "?anti?",Nothing,_originalTree)]-                   {-# LINE 15873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 102, column 9)-              _lhsOupType =-                  ({-# LINE 102 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 15879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 734, column 9)-              _tpe =-                  ({-# LINE 734 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Left []-                   {-# LINE 15885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AntiScalarExpr string_-                   {-# LINE 15891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AntiScalarExpr string_-                   {-# LINE 15897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 15903 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 15909 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))--- ScalarExprDirectionPair --------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprDirectionPair -         originalTree         : ScalarExprDirectionPair -   alternatives:-      alternative Tuple:-         child x1             : ScalarExpr -         child x2             : {Direction}-         child x3             : {NullsOrder}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprDirectionPair = ( ScalarExpr,(Direction),(NullsOrder))--- cata-_sem_ScalarExprDirectionPair :: ScalarExprDirectionPair ->-                               T_ScalarExprDirectionPair-_sem_ScalarExprDirectionPair ( x1,x2,x3) =-    (_sem_ScalarExprDirectionPair_Tuple (_sem_ScalarExpr x1) x2 x3)--- semantic domain-type T_ScalarExprDirectionPair = Catalog ->-                                 Environment ->-                                 TypeCheckFlags ->-                                 (Maybe TypeExtra) ->-                                 ( ScalarExprDirectionPair,ScalarExprDirectionPair)-data Inh_ScalarExprDirectionPair = Inh_ScalarExprDirectionPair {_cat_Inh_ScalarExprDirectionPair :: Catalog,_downEnv_Inh_ScalarExprDirectionPair :: Environment,_flags_Inh_ScalarExprDirectionPair :: TypeCheckFlags,_imCast_Inh_ScalarExprDirectionPair :: (Maybe TypeExtra)}-data Syn_ScalarExprDirectionPair = Syn_ScalarExprDirectionPair {_annotatedTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair,_originalTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair}-_wrap_ScalarExprDirectionPair :: T_ScalarExprDirectionPair ->-                                Inh_ScalarExprDirectionPair ->-                                Syn_ScalarExprDirectionPair-_wrap_ScalarExprDirectionPair sem (Inh_ScalarExprDirectionPair _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprDirectionPair _lhsOannotatedTree _lhsOoriginalTree))-_sem_ScalarExprDirectionPair_Tuple :: T_ScalarExpr ->-                                     Direction ->-                                     NullsOrder ->-                                     T_ScalarExprDirectionPair-_sem_ScalarExprDirectionPair_Tuple x1_ x2_ x3_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _x1OexpectedCast :: Bool-              _x1OodbcFunction :: Bool-              _x1OexpectedType :: (Maybe TypeExtra)-              _x1OassignmentCastContext :: Bool-              _lhsOannotatedTree :: ScalarExprDirectionPair-              _lhsOoriginalTree :: ScalarExprDirectionPair-              _x1Ocat :: Catalog-              _x1OdownEnv :: Environment-              _x1Oflags :: TypeCheckFlags-              _x1OimCast :: (Maybe TypeExtra)-              _x1IannotatedTree :: ScalarExpr-              _x1IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _x1IoriginalTree :: ScalarExpr-              _x1IupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 92, column 37)-              _x1OexpectedCast =-                  ({-# LINE 92 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 15979 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 152, column 13)-              _x1OodbcFunction =-                  ({-# LINE 152 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 15985 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 757, column 11)-              _x1OexpectedType =-                  ({-# LINE 757 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 15991 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 817, column 37)-              _x1OassignmentCastContext =-                  ({-# LINE 817 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 15997 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IannotatedTree,x2_,x3_)-                   {-# LINE 16003 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IoriginalTree,x2_,x3_)-                   {-# LINE 16009 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16015 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16021 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16027 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1OdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 16033 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16039 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16045 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _x1IannotatedTree,_x1IcolExprs,_x1IoriginalTree,_x1IupType) =-                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedType _x1Oflags _x1OimCast _x1OodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExprDirectionPairList ----------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprDirectionPairList -         originalTree         : ScalarExprDirectionPairList -   alternatives:-      alternative Cons:-         child hd             : ScalarExprDirectionPair -         child tl             : ScalarExprDirectionPairList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprDirectionPairList = [ScalarExprDirectionPair]--- cata-_sem_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ->-                                   T_ScalarExprDirectionPairList-_sem_ScalarExprDirectionPairList list =-    (Prelude.foldr _sem_ScalarExprDirectionPairList_Cons _sem_ScalarExprDirectionPairList_Nil (Prelude.map _sem_ScalarExprDirectionPair list))--- semantic domain-type T_ScalarExprDirectionPairList = Catalog ->-                                     Environment ->-                                     TypeCheckFlags ->-                                     (Maybe TypeExtra) ->-                                     ( ScalarExprDirectionPairList,ScalarExprDirectionPairList)-data Inh_ScalarExprDirectionPairList = Inh_ScalarExprDirectionPairList {_cat_Inh_ScalarExprDirectionPairList :: Catalog,_downEnv_Inh_ScalarExprDirectionPairList :: Environment,_flags_Inh_ScalarExprDirectionPairList :: TypeCheckFlags,_imCast_Inh_ScalarExprDirectionPairList :: (Maybe TypeExtra)}-data Syn_ScalarExprDirectionPairList = Syn_ScalarExprDirectionPairList {_annotatedTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList,_originalTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList}-_wrap_ScalarExprDirectionPairList :: T_ScalarExprDirectionPairList ->-                                    Inh_ScalarExprDirectionPairList ->-                                    Syn_ScalarExprDirectionPairList-_wrap_ScalarExprDirectionPairList sem (Inh_ScalarExprDirectionPairList _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprDirectionPairList _lhsOannotatedTree _lhsOoriginalTree))-_sem_ScalarExprDirectionPairList_Cons :: T_ScalarExprDirectionPair ->-                                        T_ScalarExprDirectionPairList ->-                                        T_ScalarExprDirectionPairList-_sem_ScalarExprDirectionPairList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ScalarExprDirectionPairList-              _lhsOoriginalTree :: ScalarExprDirectionPairList-              _hdOcat :: Catalog-              _hdOdownEnv :: Environment-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOdownEnv :: Environment-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: ScalarExprDirectionPair-              _hdIoriginalTree :: ScalarExprDirectionPair-              _tlIannotatedTree :: ScalarExprDirectionPairList-              _tlIoriginalTree :: ScalarExprDirectionPairList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 16119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 16125 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16131 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOdownEnv =-                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 16149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16161 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16167 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOdownEnv =-                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 16173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16179 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16185 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOdownEnv _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOdownEnv _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_ScalarExprDirectionPairList_Nil :: T_ScalarExprDirectionPairList-_sem_ScalarExprDirectionPairList_Nil =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ScalarExprDirectionPairList-              _lhsOoriginalTree :: ScalarExprDirectionPairList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 16204 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 16210 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16216 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16222 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExprList -----------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedTypes        : [TypeExtra]-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprList -         originalTree         : ScalarExprList -         upTypes              : [Maybe TypeExtra]-   alternatives:-      alternative Cons:-         child hd             : ScalarExpr -         child tl             : ScalarExprList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprList = [ScalarExpr]--- cata-_sem_ScalarExprList :: ScalarExprList ->-                      T_ScalarExprList-_sem_ScalarExprList list =-    (Prelude.foldr _sem_ScalarExprList_Cons _sem_ScalarExprList_Nil (Prelude.map _sem_ScalarExpr list))--- semantic domain-type T_ScalarExprList = Bool ->-                        Catalog ->-                        Environment ->-                        Bool ->-                        ([TypeExtra]) ->-                        TypeCheckFlags ->-                        (Maybe TypeExtra) ->-                        ( ScalarExprList,ScalarExprList,([Maybe TypeExtra]))-data Inh_ScalarExprList = Inh_ScalarExprList {_assignmentCastContext_Inh_ScalarExprList :: Bool,_cat_Inh_ScalarExprList :: Catalog,_downEnv_Inh_ScalarExprList :: Environment,_expectedCast_Inh_ScalarExprList :: Bool,_expectedTypes_Inh_ScalarExprList :: ([TypeExtra]),_flags_Inh_ScalarExprList :: TypeCheckFlags,_imCast_Inh_ScalarExprList :: (Maybe TypeExtra)}-data Syn_ScalarExprList = Syn_ScalarExprList {_annotatedTree_Syn_ScalarExprList :: ScalarExprList,_originalTree_Syn_ScalarExprList :: ScalarExprList,_upTypes_Syn_ScalarExprList :: ([Maybe TypeExtra])}-_wrap_ScalarExprList :: T_ScalarExprList ->-                       Inh_ScalarExprList ->-                       Syn_ScalarExprList-_wrap_ScalarExprList sem (Inh_ScalarExprList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedTypes _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupTypes) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedTypes _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprList _lhsOannotatedTree _lhsOoriginalTree _lhsOupTypes))-_sem_ScalarExprList_Cons :: T_ScalarExpr ->-                           T_ScalarExprList ->-                           T_ScalarExprList-_sem_ScalarExprList_Cons hd_ tl_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedTypes-       _lhsIflags-       _lhsIimCast ->-         (let _hdOodbcFunction :: Bool-              _lhsOupTypes :: ([Maybe TypeExtra])-              _hdOexpectedType :: (Maybe TypeExtra)-              _tlOexpectedTypes :: ([TypeExtra])-              _hdOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExprList-              _lhsOoriginalTree :: ScalarExprList-              _hdOassignmentCastContext :: Bool-              _hdOcat :: Catalog-              _hdOdownEnv :: Environment-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOassignmentCastContext :: Bool-              _tlOcat :: Catalog-              _tlOdownEnv :: Environment-              _tlOexpectedCast :: Bool-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: ScalarExpr-              _hdIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _hdIoriginalTree :: ScalarExpr-              _hdIupType :: (Maybe TypeExtra)-              _tlIannotatedTree :: ScalarExprList-              _tlIoriginalTree :: ScalarExprList-              _tlIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 155, column 12)-              _hdOodbcFunction =-                  ({-# LINE 155 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 16315 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 196, column 9)-              _lhsOupTypes =-                  ({-# LINE 196 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _hdIupType : _tlIupTypes-                   {-# LINE 16321 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 197, column 9)-              (_hdOexpectedType,_tlOexpectedTypes) =-                  ({-# LINE 197 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   case _lhsIexpectedTypes of-                       (x:xs) -> (Just x,xs)-                       [] -> (Nothing,[])-                   {-# LINE 16329 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 201, column 9)-              _hdOexpectedCast =-                  ({-# LINE 201 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 16335 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 16341 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 16347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 16365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 16377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 16395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 16407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOexpectedCast =-                  ({-# LINE 192 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 16413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIcolExprs,_hdIoriginalTree,_hdIupType) =-                  hd_ _hdOassignmentCastContext _hdOcat _hdOdownEnv _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast _hdOodbcFunction-              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupTypes) =-                  tl_ _tlOassignmentCastContext _tlOcat _tlOdownEnv _tlOexpectedCast _tlOexpectedTypes _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupTypes)))-_sem_ScalarExprList_Nil :: T_ScalarExprList-_sem_ScalarExprList_Nil =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedTypes-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOupTypes :: ([Maybe TypeExtra])-              _lhsOannotatedTree :: ScalarExprList-              _lhsOoriginalTree :: ScalarExprList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 202, column 11)-              _lhsOupTypes =-                  ({-# LINE 202 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   []-                   {-# LINE 16448 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 16454 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 16460 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16466 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16472 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupTypes)))--- ScalarExprListList -------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedType         : Maybe [TypeExtra]-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprListList -         originalTree         : ScalarExprListList -         upType               : Either [TypeError] [(Text,TypeExtra)]-   alternatives:-      alternative Cons:-         child hd             : ScalarExprTransposedList -         child tl             : ScalarExprListList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprListList = [ScalarExprTransposedList]--- cata-_sem_ScalarExprListList :: ScalarExprListList ->-                          T_ScalarExprListList-_sem_ScalarExprListList list =-    (Prelude.foldr _sem_ScalarExprListList_Cons _sem_ScalarExprListList_Nil (Prelude.map _sem_ScalarExprTransposedList list))--- semantic domain-type T_ScalarExprListList = Bool ->-                            Catalog ->-                            Environment ->-                            Bool ->-                            (Maybe [TypeExtra]) ->-                            TypeCheckFlags ->-                            (Maybe TypeExtra) ->-                            ( ScalarExprListList,ScalarExprListList,(Either [TypeError] [(Text,TypeExtra)]))-data Inh_ScalarExprListList = Inh_ScalarExprListList {_assignmentCastContext_Inh_ScalarExprListList :: Bool,_cat_Inh_ScalarExprListList :: Catalog,_downEnv_Inh_ScalarExprListList :: Environment,_expectedCast_Inh_ScalarExprListList :: Bool,_expectedType_Inh_ScalarExprListList :: (Maybe [TypeExtra]),_flags_Inh_ScalarExprListList :: TypeCheckFlags,_imCast_Inh_ScalarExprListList :: (Maybe TypeExtra)}-data Syn_ScalarExprListList = Syn_ScalarExprListList {_annotatedTree_Syn_ScalarExprListList :: ScalarExprListList,_originalTree_Syn_ScalarExprListList :: ScalarExprListList,_upType_Syn_ScalarExprListList :: (Either [TypeError] [(Text,TypeExtra)])}-_wrap_ScalarExprListList :: T_ScalarExprListList ->-                           Inh_ScalarExprListList ->-                           Syn_ScalarExprListList-_wrap_ScalarExprListList sem (Inh_ScalarExprListList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprListList _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))-_sem_ScalarExprListList_Cons :: T_ScalarExprTransposedList ->-                               T_ScalarExprListList ->-                               T_ScalarExprListList-_sem_ScalarExprListList_Cons hd_ tl_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOupType :: (Either [TypeError] [(Text,TypeExtra)])-              _hdOexpectedCast :: Bool-              _tlOexpectedCast :: Bool-              _lhsOannotatedTree :: ScalarExprListList-              _lhsOoriginalTree :: ScalarExprListList-              _hdOcat :: Catalog-              _hdOexpectedType :: (Maybe [TypeExtra])-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOassignmentCastContext :: Bool-              _tlOcat :: Catalog-              _tlOdownEnv :: Environment-              _tlOexpectedType :: (Maybe [TypeExtra])-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: ScalarExprTransposedList-              _hdIoriginalTree :: ScalarExprTransposedList-              _hdIupType :: (Maybe [TypeExtra])-              _tlIannotatedTree :: ScalarExprListList-              _tlIoriginalTree :: ScalarExprListList-              _tlIupType :: (Either [TypeError] [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 191, column 9)-              _lhsOupType =-                  ({-# LINE 191 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   do-                   a <- maybe (Left [InternalError "type error in VALUES clause"]) Right _hdIupType-                   b <- _tlIupType-                   unless (not $ null a) $ Left [InternalError "empty row in VALUES clause"]-                   let a' = map ("",) a-                       itError = Left [IncompatibleUnionTypes (CompositeType a') (CompositeType b)]-                   unless (null b || length a == length b) itError-                   if null b-                     then return $ zip [T.pack ("values%" ++ show k) | k <- [(0::Int)..]] a-                     else-                       do-                       let uts = zipWithM (\te1 (_,te2) -> resolveResultSetTypeExtra _lhsIcat [te1,te2])-                                     a b-                       case uts of-                         Left{} -> itError-                         Right uts' -> return $ zipWith (\(n,_) te -> (n,te)) b uts'-                   {-# LINE 16576 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 209, column 9)-              _hdOexpectedCast =-                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 16582 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 210, column 9)-              _tlOexpectedCast =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 16588 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 16594 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 16600 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16606 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16612 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOexpectedType =-                  ({-# LINE 169 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 16624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 16642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOdownEnv =-                  ({-# LINE 183 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 16654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOexpectedType =-                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 16660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16666 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16672 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree,_hdIupType) =-                  hd_ _hdOcat _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupType) =-                  tl_ _tlOassignmentCastContext _tlOcat _tlOdownEnv _tlOexpectedCast _tlOexpectedType _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExprListList_Nil :: T_ScalarExprListList-_sem_ScalarExprListList_Nil =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOupType :: (Either [TypeError] [(Text,TypeExtra)])-              _lhsOannotatedTree :: ScalarExprListList-              _lhsOoriginalTree :: ScalarExprListList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 211, column 11)-              _lhsOupType =-                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Right []-                   {-# LINE 16695 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 16701 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 16707 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16713 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16719 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))--- ScalarExprListStatementListTriple ----------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprListStatementListTriple -         originalTree         : ScalarExprListStatementListTriple -   alternatives:-      alternative Tuple:-         child x1             : ScalarExprList -         child x2             : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprListStatementListTriple = ( ScalarExprList,StatementList)--- cata-_sem_ScalarExprListStatementListTriple :: ScalarExprListStatementListTriple ->-                                         T_ScalarExprListStatementListTriple-_sem_ScalarExprListStatementListTriple ( x1,x2) =-    (_sem_ScalarExprListStatementListTriple_Tuple (_sem_ScalarExprList x1) (_sem_StatementList x2))--- semantic domain-type T_ScalarExprListStatementListTriple = Catalog ->-                                           TypeCheckFlags ->-                                           (Maybe TypeExtra) ->-                                           ( ScalarExprListStatementListTriple,ScalarExprListStatementListTriple)-data Inh_ScalarExprListStatementListTriple = Inh_ScalarExprListStatementListTriple {_cat_Inh_ScalarExprListStatementListTriple :: Catalog,_flags_Inh_ScalarExprListStatementListTriple :: TypeCheckFlags,_imCast_Inh_ScalarExprListStatementListTriple :: (Maybe TypeExtra)}-data Syn_ScalarExprListStatementListTriple = Syn_ScalarExprListStatementListTriple {_annotatedTree_Syn_ScalarExprListStatementListTriple :: ScalarExprListStatementListTriple,_originalTree_Syn_ScalarExprListStatementListTriple :: ScalarExprListStatementListTriple}-_wrap_ScalarExprListStatementListTriple :: T_ScalarExprListStatementListTriple ->-                                          Inh_ScalarExprListStatementListTriple ->-                                          Syn_ScalarExprListStatementListTriple-_wrap_ScalarExprListStatementListTriple sem (Inh_ScalarExprListStatementListTriple _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprListStatementListTriple _lhsOannotatedTree _lhsOoriginalTree))-_sem_ScalarExprListStatementListTriple_Tuple :: T_ScalarExprList ->-                                               T_StatementList ->-                                               T_ScalarExprListStatementListTriple-_sem_ScalarExprListStatementListTriple_Tuple x1_ x2_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _x1OdownEnv :: Environment-              _x1OexpectedCast :: Bool-              _x1OexpectedTypes :: ([TypeExtra])-              _x1OassignmentCastContext :: Bool-              _lhsOannotatedTree :: ScalarExprListStatementListTriple-              _lhsOoriginalTree :: ScalarExprListStatementListTriple-              _x1Ocat :: Catalog-              _x1Oflags :: TypeCheckFlags-              _x1OimCast :: (Maybe TypeExtra)-              _x2Ocat :: Catalog-              _x2Oflags :: TypeCheckFlags-              _x2OimCast :: (Maybe TypeExtra)-              _x1IannotatedTree :: ScalarExprList-              _x1IoriginalTree :: ScalarExprList-              _x1IupTypes :: ([Maybe TypeExtra])-              _x2IannotatedTree :: StatementList-              _x2IoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 93, column 47)-              _x1OdownEnv =-                  ({-# LINE 93 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 16787 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 94, column 47)-              _x1OexpectedCast =-                  ({-# LINE 94 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 16793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 95, column 47)-              _x1OexpectedTypes =-                  ({-# LINE 95 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   []-                   {-# LINE 16799 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 818, column 47)-              _x1OassignmentCastContext =-                  ({-# LINE 818 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 16805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IannotatedTree,_x2IannotatedTree)-                   {-# LINE 16811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IoriginalTree,_x2IoriginalTree)-                   {-# LINE 16817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16829 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16835 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16841 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16847 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16853 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16859 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16865 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _x1IannotatedTree,_x1IoriginalTree,_x1IupTypes) =-                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedTypes _x1Oflags _x1OimCast-              ( _x2IannotatedTree,_x2IoriginalTree) =-                  x2_ _x2Ocat _x2Oflags _x2OimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExprListStatementListTripleList ------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprListStatementListTripleList -         originalTree         : ScalarExprListStatementListTripleList -   alternatives:-      alternative Cons:-         child hd             : ScalarExprListStatementListTriple -         child tl             : ScalarExprListStatementListTripleList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprListStatementListTripleList = [ScalarExprListStatementListTriple]--- cata-_sem_ScalarExprListStatementListTripleList :: ScalarExprListStatementListTripleList ->-                                             T_ScalarExprListStatementListTripleList-_sem_ScalarExprListStatementListTripleList list =-    (Prelude.foldr _sem_ScalarExprListStatementListTripleList_Cons _sem_ScalarExprListStatementListTripleList_Nil (Prelude.map _sem_ScalarExprListStatementListTriple list))--- semantic domain-type T_ScalarExprListStatementListTripleList = Catalog ->-                                               TypeCheckFlags ->-                                               (Maybe TypeExtra) ->-                                               ( ScalarExprListStatementListTripleList,ScalarExprListStatementListTripleList)-data Inh_ScalarExprListStatementListTripleList = Inh_ScalarExprListStatementListTripleList {_cat_Inh_ScalarExprListStatementListTripleList :: Catalog,_flags_Inh_ScalarExprListStatementListTripleList :: TypeCheckFlags,_imCast_Inh_ScalarExprListStatementListTripleList :: (Maybe TypeExtra)}-data Syn_ScalarExprListStatementListTripleList = Syn_ScalarExprListStatementListTripleList {_annotatedTree_Syn_ScalarExprListStatementListTripleList :: ScalarExprListStatementListTripleList,_originalTree_Syn_ScalarExprListStatementListTripleList :: ScalarExprListStatementListTripleList}-_wrap_ScalarExprListStatementListTripleList :: T_ScalarExprListStatementListTripleList ->-                                              Inh_ScalarExprListStatementListTripleList ->-                                              Syn_ScalarExprListStatementListTripleList-_wrap_ScalarExprListStatementListTripleList sem (Inh_ScalarExprListStatementListTripleList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprListStatementListTripleList _lhsOannotatedTree _lhsOoriginalTree))-_sem_ScalarExprListStatementListTripleList_Cons :: T_ScalarExprListStatementListTriple ->-                                                  T_ScalarExprListStatementListTripleList ->-                                                  T_ScalarExprListStatementListTripleList-_sem_ScalarExprListStatementListTripleList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ScalarExprListStatementListTripleList-              _lhsOoriginalTree :: ScalarExprListStatementListTripleList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: ScalarExprListStatementListTriple-              _hdIoriginalTree :: ScalarExprListStatementListTriple-              _tlIannotatedTree :: ScalarExprListStatementListTripleList-              _tlIoriginalTree :: ScalarExprListStatementListTripleList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 16936 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 16942 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 16948 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 16954 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16960 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16966 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16972 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 16978 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 16984 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 16990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_ScalarExprListStatementListTripleList_Nil :: T_ScalarExprListStatementListTripleList-_sem_ScalarExprListStatementListTripleList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ScalarExprListStatementListTripleList-              _lhsOoriginalTree :: ScalarExprListStatementListTripleList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 17008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 17014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExprRoot -----------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         downEnv              : Environment-         flags                : TypeCheckFlags-      synthesized attributes:-         annotatedTree        : ScalarExprRoot -         originalTree         : ScalarExprRoot -   alternatives:-      alternative ScalarExprRoot:-         child expr           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data ScalarExprRoot = ScalarExprRoot (ScalarExpr)-                    deriving ( Show)--- cata-_sem_ScalarExprRoot :: ScalarExprRoot ->-                      T_ScalarExprRoot-_sem_ScalarExprRoot (ScalarExprRoot _expr) =-    (_sem_ScalarExprRoot_ScalarExprRoot (_sem_ScalarExpr _expr))--- semantic domain-type T_ScalarExprRoot = Catalog ->-                        Environment ->-                        TypeCheckFlags ->-                        ( ScalarExprRoot,ScalarExprRoot)-data Inh_ScalarExprRoot = Inh_ScalarExprRoot {_cat_Inh_ScalarExprRoot :: Catalog,_downEnv_Inh_ScalarExprRoot :: Environment,_flags_Inh_ScalarExprRoot :: TypeCheckFlags}-data Syn_ScalarExprRoot = Syn_ScalarExprRoot {_annotatedTree_Syn_ScalarExprRoot :: ScalarExprRoot,_originalTree_Syn_ScalarExprRoot :: ScalarExprRoot}-_wrap_ScalarExprRoot :: T_ScalarExprRoot ->-                       Inh_ScalarExprRoot ->-                       Syn_ScalarExprRoot-_wrap_ScalarExprRoot sem (Inh_ScalarExprRoot _lhsIcat _lhsIdownEnv _lhsIflags) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags-     in  (Syn_ScalarExprRoot _lhsOannotatedTree _lhsOoriginalTree))-_sem_ScalarExprRoot_ScalarExprRoot :: T_ScalarExpr ->-                                     T_ScalarExprRoot-_sem_ScalarExprRoot_ScalarExprRoot expr_ =-    (\ _lhsIcat-       _lhsIdownEnv-       _lhsIflags ->-         (let _exprOexpectedCast :: Bool-              _exprOodbcFunction :: Bool-              _exprOdownEnv :: Environment-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOassignmentCastContext :: Bool-              _exprOimCast :: (Maybe TypeExtra)-              _lhsOannotatedTree :: ScalarExprRoot-              _lhsOoriginalTree :: ScalarExprRoot-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 96, column 37)-              _exprOexpectedCast =-                  ({-# LINE 96 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 17090 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 158, column 22)-              _exprOodbcFunction =-                  ({-# LINE 158 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 17096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 236, column 9)-              _exprOdownEnv =-                  ({-# LINE 236 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 17102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 740, column 20)-              _exprOexpectedType =-                  ({-# LINE 740 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   Nothing-                   {-# LINE 17108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 819, column 37)-              _exprOassignmentCastContext =-                  ({-# LINE 819 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 17114 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag"(line 136, column 8)-              _exprOimCast =-                  ({-# LINE 136 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Nothing-                   {-# LINE 17120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ScalarExprRoot _exprIannotatedTree-                   {-# LINE 17126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ScalarExprRoot _exprIoriginalTree-                   {-# LINE 17132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExprStatementListPair ----------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprStatementListPair -         originalTree         : ScalarExprStatementListPair -   alternatives:-      alternative Tuple:-         child x1             : ScalarExpr -         child x2             : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprStatementListPair = ( ScalarExpr,StatementList)--- cata-_sem_ScalarExprStatementListPair :: ScalarExprStatementListPair ->-                                   T_ScalarExprStatementListPair-_sem_ScalarExprStatementListPair ( x1,x2) =-    (_sem_ScalarExprStatementListPair_Tuple (_sem_ScalarExpr x1) (_sem_StatementList x2))--- semantic domain-type T_ScalarExprStatementListPair = Catalog ->-                                     TypeCheckFlags ->-                                     (Maybe TypeExtra) ->-                                     ( ScalarExprStatementListPair,ScalarExprStatementListPair)-data Inh_ScalarExprStatementListPair = Inh_ScalarExprStatementListPair {_cat_Inh_ScalarExprStatementListPair :: Catalog,_flags_Inh_ScalarExprStatementListPair :: TypeCheckFlags,_imCast_Inh_ScalarExprStatementListPair :: (Maybe TypeExtra)}-data Syn_ScalarExprStatementListPair = Syn_ScalarExprStatementListPair {_annotatedTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair,_originalTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair}-_wrap_ScalarExprStatementListPair :: T_ScalarExprStatementListPair ->-                                    Inh_ScalarExprStatementListPair ->-                                    Syn_ScalarExprStatementListPair-_wrap_ScalarExprStatementListPair sem (Inh_ScalarExprStatementListPair _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprStatementListPair _lhsOannotatedTree _lhsOoriginalTree))-_sem_ScalarExprStatementListPair_Tuple :: T_ScalarExpr ->-                                         T_StatementList ->-                                         T_ScalarExprStatementListPair-_sem_ScalarExprStatementListPair_Tuple x1_ x2_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _x1OdownEnv :: Environment-              _x1OexpectedCast :: Bool-              _x1OexpectedType :: (Maybe TypeExtra)-              _x1OodbcFunction :: Bool-              _x1OassignmentCastContext :: Bool-              _lhsOannotatedTree :: ScalarExprStatementListPair-              _lhsOoriginalTree :: ScalarExprStatementListPair-              _x1Ocat :: Catalog-              _x1Oflags :: TypeCheckFlags-              _x1OimCast :: (Maybe TypeExtra)-              _x2Ocat :: Catalog-              _x2Oflags :: TypeCheckFlags-              _x2OimCast :: (Maybe TypeExtra)-              _x1IannotatedTree :: ScalarExpr-              _x1IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _x1IoriginalTree :: ScalarExpr-              _x1IupType :: (Maybe TypeExtra)-              _x2IannotatedTree :: StatementList-              _x2IoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 97, column 41)-              _x1OdownEnv =-                  ({-# LINE 97 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 17228 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 98, column 41)-              _x1OexpectedCast =-                  ({-# LINE 98 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 17234 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 99, column 41)-              _x1OexpectedType =-                  ({-# LINE 99 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 17240 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 100, column 41)-              _x1OodbcFunction =-                  ({-# LINE 100 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 17246 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 820, column 41)-              _x1OassignmentCastContext =-                  ({-# LINE 820 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 17252 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IannotatedTree,_x2IannotatedTree)-                   {-# LINE 17258 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (_x1IoriginalTree,_x2IoriginalTree)-                   {-# LINE 17264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17276 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17288 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17294 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17300 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17306 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _x2OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17312 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _x1IannotatedTree,_x1IcolExprs,_x1IoriginalTree,_x1IupType) =-                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedType _x1Oflags _x1OimCast _x1OodbcFunction-              ( _x2IannotatedTree,_x2IoriginalTree) =-                  x2_ _x2Ocat _x2Oflags _x2OimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExprStatementListPairList ------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprStatementListPairList -         originalTree         : ScalarExprStatementListPairList -   alternatives:-      alternative Cons:-         child hd             : ScalarExprStatementListPair -         child tl             : ScalarExprStatementListPairList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprStatementListPairList = [ScalarExprStatementListPair]--- cata-_sem_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ->-                                       T_ScalarExprStatementListPairList-_sem_ScalarExprStatementListPairList list =-    (Prelude.foldr _sem_ScalarExprStatementListPairList_Cons _sem_ScalarExprStatementListPairList_Nil (Prelude.map _sem_ScalarExprStatementListPair list))--- semantic domain-type T_ScalarExprStatementListPairList = Catalog ->-                                         TypeCheckFlags ->-                                         (Maybe TypeExtra) ->-                                         ( ScalarExprStatementListPairList,ScalarExprStatementListPairList)-data Inh_ScalarExprStatementListPairList = Inh_ScalarExprStatementListPairList {_cat_Inh_ScalarExprStatementListPairList :: Catalog,_flags_Inh_ScalarExprStatementListPairList :: TypeCheckFlags,_imCast_Inh_ScalarExprStatementListPairList :: (Maybe TypeExtra)}-data Syn_ScalarExprStatementListPairList = Syn_ScalarExprStatementListPairList {_annotatedTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList,_originalTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList}-_wrap_ScalarExprStatementListPairList :: T_ScalarExprStatementListPairList ->-                                        Inh_ScalarExprStatementListPairList ->-                                        Syn_ScalarExprStatementListPairList-_wrap_ScalarExprStatementListPairList sem (Inh_ScalarExprStatementListPairList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprStatementListPairList _lhsOannotatedTree _lhsOoriginalTree))-_sem_ScalarExprStatementListPairList_Cons :: T_ScalarExprStatementListPair ->-                                            T_ScalarExprStatementListPairList ->-                                            T_ScalarExprStatementListPairList-_sem_ScalarExprStatementListPairList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ScalarExprStatementListPairList-              _lhsOoriginalTree :: ScalarExprStatementListPairList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: ScalarExprStatementListPair-              _hdIoriginalTree :: ScalarExprStatementListPair-              _tlIannotatedTree :: ScalarExprStatementListPairList-              _tlIoriginalTree :: ScalarExprStatementListPairList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 17383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 17389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_ScalarExprStatementListPairList_Nil :: T_ScalarExprStatementListPairList-_sem_ScalarExprStatementListPairList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: ScalarExprStatementListPairList-              _lhsOoriginalTree :: ScalarExprStatementListPairList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 17455 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 17461 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17467 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17473 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- ScalarExprTransposedList -------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         expectedCast         : Bool-         expectedType         : Maybe [TypeExtra]-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : ScalarExprTransposedList -         originalTree         : ScalarExprTransposedList -         upType               : Maybe [TypeExtra]-   alternatives:-      alternative Cons:-         child hd             : ScalarExpr -         child tl             : ScalarExprTransposedList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type ScalarExprTransposedList = [ScalarExpr]--- cata-_sem_ScalarExprTransposedList :: ScalarExprTransposedList ->-                                T_ScalarExprTransposedList-_sem_ScalarExprTransposedList list =-    (Prelude.foldr _sem_ScalarExprTransposedList_Cons _sem_ScalarExprTransposedList_Nil (Prelude.map _sem_ScalarExpr list))--- semantic domain-type T_ScalarExprTransposedList = Catalog ->-                                  Bool ->-                                  (Maybe [TypeExtra]) ->-                                  TypeCheckFlags ->-                                  (Maybe TypeExtra) ->-                                  ( ScalarExprTransposedList,ScalarExprTransposedList,(Maybe [TypeExtra]))-data Inh_ScalarExprTransposedList = Inh_ScalarExprTransposedList {_cat_Inh_ScalarExprTransposedList :: Catalog,_expectedCast_Inh_ScalarExprTransposedList :: Bool,_expectedType_Inh_ScalarExprTransposedList :: (Maybe [TypeExtra]),_flags_Inh_ScalarExprTransposedList :: TypeCheckFlags,_imCast_Inh_ScalarExprTransposedList :: (Maybe TypeExtra)}-data Syn_ScalarExprTransposedList = Syn_ScalarExprTransposedList {_annotatedTree_Syn_ScalarExprTransposedList :: ScalarExprTransposedList,_originalTree_Syn_ScalarExprTransposedList :: ScalarExprTransposedList,_upType_Syn_ScalarExprTransposedList :: (Maybe [TypeExtra])}-_wrap_ScalarExprTransposedList :: T_ScalarExprTransposedList ->-                                 Inh_ScalarExprTransposedList ->-                                 Syn_ScalarExprTransposedList-_wrap_ScalarExprTransposedList sem (Inh_ScalarExprTransposedList _lhsIcat _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIcat _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast-     in  (Syn_ScalarExprTransposedList _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))-_sem_ScalarExprTransposedList_Cons :: T_ScalarExpr ->-                                     T_ScalarExprTransposedList ->-                                     T_ScalarExprTransposedList-_sem_ScalarExprTransposedList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _hdOdownEnv :: Environment-              _lhsOupType :: (Maybe [TypeExtra])-              _hdOexpectedType :: (Maybe TypeExtra)-              _tlOexpectedType :: (Maybe [TypeExtra])-              _hdOexpectedCast :: Bool-              _tlOexpectedCast :: Bool-              _hdOodbcFunction :: Bool-              _hdOassignmentCastContext :: Bool-              _lhsOannotatedTree :: ScalarExprTransposedList-              _lhsOoriginalTree :: ScalarExprTransposedList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: ScalarExpr-              _hdIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _hdIoriginalTree :: ScalarExpr-              _hdIupType :: (Maybe TypeExtra)-              _tlIannotatedTree :: ScalarExprTransposedList-              _tlIoriginalTree :: ScalarExprTransposedList-              _tlIupType :: (Maybe [TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 101, column 37)-              _hdOdownEnv =-                  ({-# LINE 101 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 17558 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 174, column 9)-              _lhsOupType =-                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM2 (:) _hdIupType _tlIupType-                   {-# LINE 17564 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 175, column 9)-              _hdOexpectedType =-                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM fst $ splitTypeExtraList _lhsIexpectedType-                   {-# LINE 17570 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 176, column 9)-              _tlOexpectedType =-                  ({-# LINE 176 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM snd $ splitTypeExtraList _lhsIexpectedType-                   {-# LINE 17576 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 177, column 9)-              _hdOexpectedCast =-                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 17582 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 178, column 9)-              _tlOexpectedCast =-                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 17588 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 162, column 12)-              _hdOodbcFunction =-                  ({-# LINE 162 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 17594 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 821, column 37)-              _hdOassignmentCastContext =-                  ({-# LINE 821 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 17600 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 17606 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 17612 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIcolExprs,_hdIoriginalTree,_hdIupType) =-                  hd_ _hdOassignmentCastContext _hdOcat _hdOdownEnv _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast _hdOodbcFunction-              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupType) =-                  tl_ _tlOcat _tlOexpectedCast _tlOexpectedType _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))-_sem_ScalarExprTransposedList_Nil :: T_ScalarExprTransposedList-_sem_ScalarExprTransposedList_Nil =-    (\ _lhsIcat-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOupType :: (Maybe [TypeExtra])-              _lhsOannotatedTree :: ScalarExprTransposedList-              _lhsOoriginalTree :: ScalarExprTransposedList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 180, column 9)-              _lhsOupType =-                  ({-# LINE 180 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Just []-                   {-# LINE 17681 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 17687 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 17693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17699 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))--- SelectItem ---------------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedType         : Maybe TypeExtra-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : SelectItem -         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]-         originalTree         : SelectItem -   alternatives:-      alternative SelExp:-         child ann            : Annotation -         child ex             : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative SelectItem:-         child ann            : Annotation -         child ex             : ScalarExpr -         child name           : {NameComponent}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data SelectItem = SelExp (Annotation) (ScalarExpr)-                | SelectItem (Annotation) (ScalarExpr) (NameComponent)-                deriving ( Data,Eq,Show,Typeable)--- cata-_sem_SelectItem :: SelectItem ->-                  T_SelectItem-_sem_SelectItem (SelExp _ann _ex) =-    (_sem_SelectItem_SelExp (_sem_Annotation _ann) (_sem_ScalarExpr _ex))-_sem_SelectItem (SelectItem _ann _ex _name) =-    (_sem_SelectItem_SelectItem (_sem_Annotation _ann) (_sem_ScalarExpr _ex) _name)--- semantic domain-type T_SelectItem = Bool ->-                    Catalog ->-                    Environment ->-                    Bool ->-                    (Maybe TypeExtra) ->-                    TypeCheckFlags ->-                    (Maybe TypeExtra) ->-                    ( SelectItem,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),SelectItem)-data Inh_SelectItem = Inh_SelectItem {_assignmentCastContext_Inh_SelectItem :: Bool,_cat_Inh_SelectItem :: Catalog,_downEnv_Inh_SelectItem :: Environment,_expectedCast_Inh_SelectItem :: Bool,_expectedType_Inh_SelectItem :: (Maybe TypeExtra),_flags_Inh_SelectItem :: TypeCheckFlags,_imCast_Inh_SelectItem :: (Maybe TypeExtra)}-data Syn_SelectItem = Syn_SelectItem {_annotatedTree_Syn_SelectItem :: SelectItem,_colExprs_Syn_SelectItem :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_SelectItem :: SelectItem}-_wrap_SelectItem :: T_SelectItem ->-                   Inh_SelectItem ->-                   Syn_SelectItem-_wrap_SelectItem sem (Inh_SelectItem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast-     in  (Syn_SelectItem _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree))-_sem_SelectItem_SelExp :: T_Annotation ->-                         T_ScalarExpr ->-                         T_SelectItem-_sem_SelectItem_SelExp ann_ ex_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: SelectItem-              _annOtpe :: (Either [TypeError] TypeExtra)-              _exOexpectedType :: (Maybe TypeExtra)-              _exOexpectedCast :: Bool-              _exOodbcFunction :: Bool-              _lhsOoriginalTree :: SelectItem-              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exOassignmentCastContext :: Bool-              _exOcat :: Catalog-              _exOdownEnv :: Environment-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: ScalarExpr-              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exIoriginalTree :: ScalarExpr-              _exIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 117, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   if tcfAddSelectItemAliases _lhsIflags-                   then case _exIcolExprs of-                          [(n,_,_)] -> SelectItem _annIannotatedTree _exIannotatedTree n-                          _ ->-                               _annotatedTree-                   else _annotatedTree-                   {-# LINE 17806 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 208, column 7)-              _annOtpe =-                  ({-# LINE 208 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   Left []-                   {-# LINE 17812 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 209, column 7)-              _exOexpectedType =-                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 17818 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 210, column 7)-              _exOexpectedCast =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 17824 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 165, column 25)-              _exOodbcFunction =-                  ({-# LINE 165 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 17830 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SelExp _annIannotatedTree _exIannotatedTree-                   {-# LINE 17836 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SelExp _annIoriginalTree _exIoriginalTree-                   {-# LINE 17842 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17848 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOcolExprs =-                  ({-# LINE 150 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _exIcolExprs-                   {-# LINE 17854 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17860 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17866 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17872 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 17878 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 17884 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 17890 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 17896 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 17902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree)))-_sem_SelectItem_SelectItem :: T_Annotation ->-                             T_ScalarExpr ->-                             NameComponent ->-                             T_SelectItem-_sem_SelectItem_SelectItem ann_ ex_ name_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _annOtpe :: (Either [TypeError] TypeExtra)-              _exOexpectedType :: (Maybe TypeExtra)-              _exOexpectedCast :: Bool-              _exOodbcFunction :: Bool-              _lhsOannotatedTree :: SelectItem-              _lhsOoriginalTree :: SelectItem-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exOassignmentCastContext :: Bool-              _exOcat :: Catalog-              _exOdownEnv :: Environment-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: ScalarExpr-              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exIoriginalTree :: ScalarExpr-              _exIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 112, column 7)-              _lhsOcolExprs =-                  ({-# LINE 112 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   case _exIcolExprs of-                     [(_,t,e)] -> [(name_, t,e)]-                     x -> x-                   {-# LINE 17948 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 208, column 7)-              _annOtpe =-                  ({-# LINE 208 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   Left []-                   {-# LINE 17954 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 209, column 7)-              _exOexpectedType =-                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 17960 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 210, column 7)-              _exOexpectedCast =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 17966 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 165, column 25)-              _exOodbcFunction =-                  ({-# LINE 165 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 17972 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SelectItem _annIannotatedTree _exIannotatedTree name_-                   {-# LINE 17978 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SelectItem _annIoriginalTree _exIoriginalTree name_-                   {-# LINE 17984 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 17990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 17996 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18002 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 18020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOdownEnv =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 18032 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18038 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18044 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree)))--- SelectItemList -----------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedType         : Maybe [TypeExtra]-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : SelectItemList -         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]-         originalTree         : SelectItemList -         upEnv                : Environment-         upType               : Maybe [(Text,TypeExtra)]-   alternatives:-      alternative Cons:-         child hd             : SelectItem -         child tl             : SelectItemList -         visit 0:-            local colExprs    : _-            local upType      : _-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local upType      : _-            local annotatedTree : _-            local originalTree : _--}-type SelectItemList = [SelectItem]--- cata-_sem_SelectItemList :: SelectItemList ->-                      T_SelectItemList-_sem_SelectItemList list =-    (Prelude.foldr _sem_SelectItemList_Cons _sem_SelectItemList_Nil (Prelude.map _sem_SelectItem list))--- semantic domain-type T_SelectItemList = Bool ->-                        Catalog ->-                        Environment ->-                        Bool ->-                        (Maybe [TypeExtra]) ->-                        TypeCheckFlags ->-                        (Maybe TypeExtra) ->-                        ( SelectItemList,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),SelectItemList,Environment,(Maybe [(Text,TypeExtra)]))-data Inh_SelectItemList = Inh_SelectItemList {_assignmentCastContext_Inh_SelectItemList :: Bool,_cat_Inh_SelectItemList :: Catalog,_downEnv_Inh_SelectItemList :: Environment,_expectedCast_Inh_SelectItemList :: Bool,_expectedType_Inh_SelectItemList :: (Maybe [TypeExtra]),_flags_Inh_SelectItemList :: TypeCheckFlags,_imCast_Inh_SelectItemList :: (Maybe TypeExtra)}-data Syn_SelectItemList = Syn_SelectItemList {_annotatedTree_Syn_SelectItemList :: SelectItemList,_colExprs_Syn_SelectItemList :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_SelectItemList :: SelectItemList,_upEnv_Syn_SelectItemList :: Environment,_upType_Syn_SelectItemList :: (Maybe [(Text,TypeExtra)])}-_wrap_SelectItemList :: T_SelectItemList ->-                       Inh_SelectItemList ->-                       Syn_SelectItemList-_wrap_SelectItemList sem (Inh_SelectItemList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast-     in  (Syn_SelectItemList _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree _lhsOupEnv _lhsOupType))-_sem_SelectItemList_Cons :: T_SelectItem ->-                           T_SelectItemList ->-                           T_SelectItemList-_sem_SelectItemList_Cons hd_ tl_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: SelectItemList-              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _hdOexpectedType :: (Maybe TypeExtra)-              _tlOexpectedType :: (Maybe [TypeExtra])-              _hdOexpectedCast :: Bool-              _tlOexpectedCast :: Bool-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _lhsOupEnv :: Environment-              _lhsOoriginalTree :: SelectItemList-              _hdOassignmentCastContext :: Bool-              _hdOcat :: Catalog-              _hdOdownEnv :: Environment-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOassignmentCastContext :: Bool-              _tlOcat :: Catalog-              _tlOdownEnv :: Environment-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: SelectItem-              _hdIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _hdIoriginalTree :: SelectItem-              _tlIannotatedTree :: SelectItemList-              _tlIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _tlIoriginalTree :: SelectItemList-              _tlIupEnv :: Environment-              _tlIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 132, column 10)-              _lhsOannotatedTree =-                  ({-# LINE 132 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   if tcfExpandStars _lhsIflags-                   then flip map _colExprs $ \(n,_t,e) ->-                         if ncStr n == ncStr (columnName e) && not (tcfAddSelectItemAliases _lhsIflags)-                         then SelExp emptyAnnotation e-                         else SelectItem emptyAnnotation e n-                   else _annotatedTree-                   {-# LINE 18153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 177, column 9)-              _colExprs =-                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _hdIcolExprs ++ _tlIcolExprs-                   {-# LINE 18159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 178, column 9)-              _lhsOcolExprs =-                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _colExprs-                   {-# LINE 18165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 179, column 9)-              _upType =-                  ({-# LINE 179 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   sequence $ flip map _colExprs-                   $ \(n,t,_) -> fmap (ncStrT n,) t-                   {-# LINE 18172 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 181, column 9)-              _hdOexpectedType =-                  ({-# LINE 181 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   liftM fst $ splitTypeExtraList _lhsIexpectedType-                   {-# LINE 18178 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 182, column 9)-              _tlOexpectedType =-                  ({-# LINE 182 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   liftM snd $ splitTypeExtraList _lhsIexpectedType-                   {-# LINE 18184 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 183, column 9)-              _hdOexpectedCast =-                  ({-# LINE 183 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 18190 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 184, column 9)-              _tlOexpectedCast =-                  ({-# LINE 184 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedCast-                   {-# LINE 18196 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 186, column 7)-              _lhsOupType =-                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _upType-                   {-# LINE 18202 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 187, column 7)-              _lhsOupEnv =-                  ({-# LINE 187 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   case fmap E.envSelectListEnvironment _upType     of-                     (Just (Right e)) -> e-                     _ -> E.brokeEnvironment-                   {-# LINE 18210 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 18216 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 18222 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 18228 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 18234 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18240 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOdownEnv =-                  ({-# LINE 151 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 18246 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18252 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18258 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 18264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOdownEnv =-                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 18276 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18288 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIcolExprs,_hdIoriginalTree) =-                  hd_ _hdOassignmentCastContext _hdOcat _hdOdownEnv _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIcolExprs,_tlIoriginalTree,_tlIupEnv,_tlIupType) =-                  tl_ _tlOassignmentCastContext _tlOcat _tlOdownEnv _tlOexpectedCast _tlOexpectedType _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType)))-_sem_SelectItemList_Nil :: T_SelectItemList-_sem_SelectItemList_Nil =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: SelectItemList-              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _lhsOupEnv :: Environment-              _lhsOoriginalTree :: SelectItemList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 131, column 9)-              _lhsOannotatedTree =-                  ({-# LINE 131 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   []-                   {-# LINE 18313 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 174, column 9)-              _lhsOcolExprs =-                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   []-                   {-# LINE 18319 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 175, column 9)-              _upType =-                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   Nothing-                   {-# LINE 18325 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 186, column 7)-              _lhsOupType =-                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _upType-                   {-# LINE 18331 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 187, column 7)-              _lhsOupEnv =-                  ({-# LINE 187 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   case fmap E.envSelectListEnvironment _upType     of-                     (Just (Right e)) -> e-                     _ -> E.brokeEnvironment-                   {-# LINE 18339 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 18345 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 18351 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 18357 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType)))--- SelectList ---------------------------------------------------{--   visit 0:-      inherited attributes:-         assignmentCastContext : Bool-         cat                  : Catalog-         downEnv              : Environment-         expectedCast         : Bool-         expectedType         : Maybe [TypeExtra]-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : SelectList -         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]-         originalTree         : SelectList -         upEnv                : Environment-         upType               : Maybe [(Text,TypeExtra)]-   alternatives:-      alternative SelectList:-         child ann            : Annotation -         child items          : SelectItemList -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data SelectList = SelectList (Annotation) (SelectItemList)-                deriving ( Data,Eq,Show,Typeable)--- cata-_sem_SelectList :: SelectList ->-                  T_SelectList-_sem_SelectList (SelectList _ann _items) =-    (_sem_SelectList_SelectList (_sem_Annotation _ann) (_sem_SelectItemList _items))--- semantic domain-type T_SelectList = Bool ->-                    Catalog ->-                    Environment ->-                    Bool ->-                    (Maybe [TypeExtra]) ->-                    TypeCheckFlags ->-                    (Maybe TypeExtra) ->-                    ( SelectList,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),SelectList,Environment,(Maybe [(Text,TypeExtra)]))-data Inh_SelectList = Inh_SelectList {_assignmentCastContext_Inh_SelectList :: Bool,_cat_Inh_SelectList :: Catalog,_downEnv_Inh_SelectList :: Environment,_expectedCast_Inh_SelectList :: Bool,_expectedType_Inh_SelectList :: (Maybe [TypeExtra]),_flags_Inh_SelectList :: TypeCheckFlags,_imCast_Inh_SelectList :: (Maybe TypeExtra)}-data Syn_SelectList = Syn_SelectList {_annotatedTree_Syn_SelectList :: SelectList,_colExprs_Syn_SelectList :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_SelectList :: SelectList,_upEnv_Syn_SelectList :: Environment,_upType_Syn_SelectList :: (Maybe [(Text,TypeExtra)])}-_wrap_SelectList :: T_SelectList ->-                   Inh_SelectList ->-                   Syn_SelectList-_wrap_SelectList sem (Inh_SelectList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast-     in  (Syn_SelectList _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree _lhsOupEnv _lhsOupType))-_sem_SelectList_SelectList :: T_Annotation ->-                             T_SelectItemList ->-                             T_SelectList-_sem_SelectList_SelectList ann_ items_ =-    (\ _lhsIassignmentCastContext-       _lhsIcat-       _lhsIdownEnv-       _lhsIexpectedCast-       _lhsIexpectedType-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _itemsOexpectedCast :: Bool-              _lhsOannotatedTree :: SelectList-              _lhsOoriginalTree :: SelectList-              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _lhsOupEnv :: Environment-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _itemsOassignmentCastContext :: Bool-              _itemsOcat :: Catalog-              _itemsOdownEnv :: Environment-              _itemsOexpectedType :: (Maybe [TypeExtra])-              _itemsOflags :: TypeCheckFlags-              _itemsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _itemsIannotatedTree :: SelectItemList-              _itemsIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _itemsIoriginalTree :: SelectItemList-              _itemsIupEnv :: Environment-              _itemsIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 204, column 7)-              _annOtpe =-                  ({-# LINE 204 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   Left []-                   {-# LINE 18447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 205, column 7)-              _itemsOexpectedCast =-                  ({-# LINE 205 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   True-                   {-# LINE 18453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SelectList _annIannotatedTree _itemsIannotatedTree-                   {-# LINE 18459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SelectList _annIoriginalTree _itemsIoriginalTree-                   {-# LINE 18465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 18471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 18477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOcolExprs =-                  ({-# LINE 157 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _itemsIcolExprs-                   {-# LINE 18483 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOupEnv =-                  ({-# LINE 161 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _itemsIupEnv-                   {-# LINE 18489 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOupType =-                  ({-# LINE 158 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _itemsIupType-                   {-# LINE 18495 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18501 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18507 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18513 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _itemsOassignmentCastContext =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   _lhsIassignmentCastContext-                   {-# LINE 18519 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _itemsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18525 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _itemsOdownEnv =-                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIdownEnv-                   {-# LINE 18531 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _itemsOexpectedType =-                  ({-# LINE 159 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}-                   _lhsIexpectedType-                   {-# LINE 18537 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _itemsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18543 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _itemsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18549 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _itemsIannotatedTree,_itemsIcolExprs,_itemsIoriginalTree,_itemsIupEnv,_itemsIupType) =-                  items_ _itemsOassignmentCastContext _itemsOcat _itemsOdownEnv _itemsOexpectedCast _itemsOexpectedType _itemsOflags _itemsOimCast-          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType)))--- SetClause ----------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : SetClause -         originalTree         : SetClause -   alternatives:-      alternative SetClause:-         child ann            : Annotation -         child setTarget      : {NameComponent}-         child ex             : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative MultiSetClause:-         child ann            : Annotation -         child setTargets     : {[NameComponent]}-         child ex             : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data SetClause = SetClause (Annotation) (NameComponent) (ScalarExpr)-               | MultiSetClause (Annotation) (([NameComponent])) (ScalarExpr)-               deriving ( Data,Eq,Show,Typeable)--- cata-_sem_SetClause :: SetClause ->-                 T_SetClause-_sem_SetClause (SetClause _ann _setTarget _ex) =-    (_sem_SetClause_SetClause (_sem_Annotation _ann) _setTarget (_sem_ScalarExpr _ex))-_sem_SetClause (MultiSetClause _ann _setTargets _ex) =-    (_sem_SetClause_MultiSetClause (_sem_Annotation _ann) _setTargets (_sem_ScalarExpr _ex))--- semantic domain-type T_SetClause = Catalog ->-                   TypeCheckFlags ->-                   (Maybe TypeExtra) ->-                   ( SetClause,SetClause)-data Inh_SetClause = Inh_SetClause {_cat_Inh_SetClause :: Catalog,_flags_Inh_SetClause :: TypeCheckFlags,_imCast_Inh_SetClause :: (Maybe TypeExtra)}-data Syn_SetClause = Syn_SetClause {_annotatedTree_Syn_SetClause :: SetClause,_originalTree_Syn_SetClause :: SetClause}-_wrap_SetClause :: T_SetClause ->-                  Inh_SetClause ->-                  Syn_SetClause-_wrap_SetClause sem (Inh_SetClause _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_SetClause _lhsOannotatedTree _lhsOoriginalTree))-_sem_SetClause_SetClause :: T_Annotation ->-                           NameComponent ->-                           T_ScalarExpr ->-                           T_SetClause-_sem_SetClause_SetClause ann_ setTarget_ ex_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exOdownEnv :: Environment-              _exOexpectedCast :: Bool-              _exOexpectedType :: (Maybe TypeExtra)-              _exOodbcFunction :: Bool-              _exOassignmentCastContext :: Bool-              _lhsOannotatedTree :: SetClause-              _lhsOoriginalTree :: SetClause-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exOcat :: Catalog-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: ScalarExpr-              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exIoriginalTree :: ScalarExpr-              _exIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 106, column 27)-              _annOtpe =-                  ({-# LINE 106 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 18637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 107, column 27)-              _exOdownEnv =-                  ({-# LINE 107 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 18643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 108, column 27)-              _exOexpectedCast =-                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 18649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 109, column 27)-              _exOexpectedType =-                  ({-# LINE 109 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 18655 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 168, column 32)-              _exOodbcFunction =-                  ({-# LINE 168 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 18661 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 823, column 27)-              _exOassignmentCastContext =-                  ({-# LINE 823 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 18667 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetClause _annIannotatedTree setTarget_ _exIannotatedTree-                   {-# LINE 18673 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetClause _annIoriginalTree setTarget_ _exIoriginalTree-                   {-# LINE 18679 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 18685 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 18691 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18697 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18703 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18709 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18715 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18721 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18727 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_SetClause_MultiSetClause :: T_Annotation ->-                                ([NameComponent]) ->-                                T_ScalarExpr ->-                                T_SetClause-_sem_SetClause_MultiSetClause ann_ setTargets_ ex_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exOdownEnv :: Environment-              _exOexpectedCast :: Bool-              _exOexpectedType :: (Maybe TypeExtra)-              _exOodbcFunction :: Bool-              _exOassignmentCastContext :: Bool-              _lhsOannotatedTree :: SetClause-              _lhsOoriginalTree :: SetClause-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exOcat :: Catalog-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: ScalarExpr-              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exIoriginalTree :: ScalarExpr-              _exIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 102, column 32)-              _annOtpe =-                  ({-# LINE 102 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 18766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 103, column 32)-              _exOdownEnv =-                  ({-# LINE 103 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 18772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 104, column 32)-              _exOexpectedCast =-                  ({-# LINE 104 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 18778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 105, column 32)-              _exOexpectedType =-                  ({-# LINE 105 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 18784 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 168, column 32)-              _exOodbcFunction =-                  ({-# LINE 168 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 18790 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 822, column 32)-              _exOassignmentCastContext =-                  ({-# LINE 822 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 18796 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   MultiSetClause _annIannotatedTree setTargets_ _exIannotatedTree-                   {-# LINE 18802 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   MultiSetClause _annIoriginalTree setTargets_ _exIoriginalTree-                   {-# LINE 18808 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 18814 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 18820 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18844 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18850 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18856 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- SetClauseList ------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : SetClauseList -         originalTree         : SetClauseList -   alternatives:-      alternative Cons:-         child hd             : SetClause -         child tl             : SetClauseList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type SetClauseList = [SetClause]--- cata-_sem_SetClauseList :: SetClauseList ->-                     T_SetClauseList-_sem_SetClauseList list =-    (Prelude.foldr _sem_SetClauseList_Cons _sem_SetClauseList_Nil (Prelude.map _sem_SetClause list))--- semantic domain-type T_SetClauseList = Catalog ->-                       TypeCheckFlags ->-                       (Maybe TypeExtra) ->-                       ( SetClauseList,SetClauseList)-data Inh_SetClauseList = Inh_SetClauseList {_cat_Inh_SetClauseList :: Catalog,_flags_Inh_SetClauseList :: TypeCheckFlags,_imCast_Inh_SetClauseList :: (Maybe TypeExtra)}-data Syn_SetClauseList = Syn_SetClauseList {_annotatedTree_Syn_SetClauseList :: SetClauseList,_originalTree_Syn_SetClauseList :: SetClauseList}-_wrap_SetClauseList :: T_SetClauseList ->-                      Inh_SetClauseList ->-                      Syn_SetClauseList-_wrap_SetClauseList sem (Inh_SetClauseList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_SetClauseList _lhsOannotatedTree _lhsOoriginalTree))-_sem_SetClauseList_Cons :: T_SetClause ->-                          T_SetClauseList ->-                          T_SetClauseList-_sem_SetClauseList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: SetClauseList-              _lhsOoriginalTree :: SetClauseList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: SetClause-              _hdIoriginalTree :: SetClause-              _tlIannotatedTree :: SetClauseList-              _tlIoriginalTree :: SetClauseList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 18927 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 18933 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 18939 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 18945 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18951 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18957 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18963 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 18969 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 18975 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 18981 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_SetClauseList_Nil :: T_SetClauseList-_sem_SetClauseList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: SetClauseList-              _lhsOoriginalTree :: SetClauseList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 18999 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 19005 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 19011 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 19017 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- Statement ----------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : Statement -         originalTree         : Statement -   alternatives:-      alternative QueryStatement:-         child ann            : Annotation -         child ex             : QueryExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Insert:-         child ann            : Annotation -         child table          : Name -         child targetCols     : {[NameComponent]}-         child insData        : QueryExpr -         child returning      : MaybeSelectList -         visit 0:-            local tpe         : {Either [TypeError] [TypeExtra]}-            local tooManyCols : {Maybe [TypeError]}-            local annotatedTree : _-            local originalTree : _-      alternative Update:-         child ann            : Annotation -         child table          : Name -         child assigns        : SetClauseList -         child fromList       : TableRefList -         child whr            : MaybeBoolExpr -         child returning      : MaybeSelectList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Delete:-         child ann            : Annotation -         child table          : Name -         child using          : TableRefList -         child whr            : MaybeBoolExpr -         child returning      : MaybeSelectList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CopyFrom:-         child ann            : Annotation -         child table          : Name -         child targetCols     : {[NameComponent]}-         child source         : {CopyFromSource}-         child opts           : {[CopyFromOption]}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CopyData:-         child ann            : Annotation -         child insData        : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CopyTo:-         child ann            : Annotation -         child cp             : {CopyToSource}-         child fn             : {String}-         child opts           : {[CopyToOption]}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Truncate:-         child ann            : Annotation -         child tables         : {[Name]}-         child restartIdentity : {RestartIdentity}-         child cascade        : {Cascade}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateTable:-         child ann            : Annotation -         child name           : Name -         child atts           : AttributeDefList -         child cons           : ConstraintList -         child partition      : MaybeTablePartitionDef -         child rep            : {Replace}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterTable:-         child ann            : Annotation -         child name           : Name -         child operation      : AlterTableOperation -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterDatabase:-         child ann            : Annotation -         child name           : Name -         child operation      : AlterDatabaseOperation -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateSequence:-         child ann            : Annotation -         child name           : Name -         child incr           : {Integer}-         child min            : {Maybe Integer}-         child max            : {Maybe Integer}-         child start          : {Integer}-         child cache          : {Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSequence:-         child ann            : Annotation -         child name           : Name -         child operation      : AlterSequenceOperation -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateTableAs:-         child ann            : Annotation -         child name           : Name -         child rep            : {Replace}-         child expr           : QueryExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateView:-         child ann            : Annotation -         child name           : Name -         child colNames       : {MaybeNameComponentList}-         child expr           : QueryExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterView:-         child ann            : Annotation -         child name           : Name -         child colNames       : {MaybeNameComponentList}-         child expr           : QueryExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateType:-         child ann            : Annotation -         child name           : Name -         child atts           : TypeAttributeDefList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateUser:-         child ann            : Annotation -         child name           : Name -         child password       : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateLogin:-         child ann            : Annotation -         child name           : Name -         child password       : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterUser:-         child ann            : Annotation -         child name           : Name -         child password       : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterLogin:-         child ann            : Annotation -         child name           : Name -         child password       : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateSchema:-         child ann            : Annotation -         child name           : {NameComponent}-         child owner          : {Maybe Name}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AlterSchema:-         child ann            : Annotation -         child name           : {NameComponent}-         child operation      : AlterSchemaOperation -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateFunction:-         child ann            : Annotation -         child name           : Name -         child params         : ParamDefList -         child rettype        : TypeName -         child rep            : {Replace}-         child lang           : {Language}-         child body           : FnBody -         child vol            : {Volatility}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateDomain:-         child ann            : Annotation -         child name           : Name -         child typ            : TypeName -         child constraintName : {String}-         child check          : MaybeBoolExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateLanguage:-         child ann            : Annotation -         child name           : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateTrigger:-         child ann            : Annotation -         child name           : {NameComponent}-         child wh             : {TriggerWhen}-         child events         : {[TriggerEvent]}-         child tbl            : Name -         child firing         : {TriggerFire}-         child fnName         : Name -         child fnArgs         : ScalarExprList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative DropFunction:-         child ann            : Annotation -         child ifE            : {IfExists}-         child sigs           : NameTypeNameListPairList -         child cascade        : {Cascade}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative DropSomething:-         child ann            : Annotation -         child dropType       : {DropType}-         child ifE            : {IfExists}-         child names          : {[Name]}-         child cascade        : {Cascade}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative DropTrigger:-         child ann            : Annotation -         child ifE            : {IfExists}-         child name           : {NameComponent}-         child tbl            : Name -         child cascade        : {Cascade}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateDatabase:-         child ann            : Annotation -         child nm             : Name -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Set:-         child ann            : Annotation -         child name           : {String}-         child values         : {[SetValue]}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Notify:-         child ann            : Annotation -         child name           : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Into:-         child ann            : Annotation -         child strict         : {Bool}-         child into           : {[Name]}-         child stmt           : Statement -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Assignment:-         child ann            : Annotation -         child target         : Name -         child value          : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Return:-         child ann            : Annotation -         child value          : MaybeScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ReturnNext:-         child ann            : Annotation -         child expr           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ReturnQuery:-         child ann            : Annotation -         child sel            : QueryExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Raise:-         child ann            : Annotation -         child level          : {RaiseType}-         child message        : {String}-         child args           : ScalarExprList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative NullStatement:-         child ann            : Annotation -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Perform:-         child ann            : Annotation -         child expr           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Execute:-         child ann            : Annotation -         child expr           : ScalarExpr -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ForQueryStatement:-         child ann            : Annotation -         child lb             : {Maybe String}-         child var            : {NameComponent}-         child sel            : QueryExpr -         child sts            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ForIntegerStatement:-         child ann            : Annotation -         child lb             : {Maybe String}-         child var            : {NameComponent}-         child from           : ScalarExpr -         child to             : ScalarExpr -         child sts            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative LoopStatement:-         child ann            : Annotation -         child lb             : {Maybe String}-         child sts            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative WhileStatement:-         child ann            : Annotation -         child lb             : {Maybe String}-         child expr           : ScalarExpr -         child sts            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ContinueStatement:-         child ann            : Annotation -         child lb             : {Maybe String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ExitStatement:-         child ann            : Annotation -         child lb             : {Maybe String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CaseStatementSimple:-         child ann            : Annotation -         child val            : ScalarExpr -         child cases          : ScalarExprListStatementListTripleList -         child els            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CaseStatement:-         child ann            : Annotation -         child cases          : ScalarExprListStatementListTripleList -         child els            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative If:-         child ann            : Annotation -         child cases          : ScalarExprStatementListPairList -         child els            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Block:-         child ann            : Annotation -         child lb             : {Maybe String}-         child vars           : VarDefList -         child sts            : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative AntiStatement:-         child string         : {String}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative DeclareStatement:-         child ann            : Annotation -         child ds             : {[(String,TypeName,Maybe ScalarExpr)]}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ExecStatement:-         child ann            : Annotation -         child spName         : Name -         child args           : ScalarExprList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative CreateIndexTSQL:-         child ann            : Annotation -         child nm             : {NameComponent}-         child obj            : Name -         child cols           : {[NameComponent]}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data Statement = QueryStatement (Annotation) (QueryExpr)-               | Insert (Annotation) (Name) (([NameComponent])) (QueryExpr) (MaybeSelectList)-               | Update (Annotation) (Name) (SetClauseList) (TableRefList) (MaybeBoolExpr) (MaybeSelectList)-               | Delete (Annotation) (Name) (TableRefList) (MaybeBoolExpr) (MaybeSelectList)-               | CopyFrom (Annotation) (Name) (([NameComponent])) (CopyFromSource) (([CopyFromOption]))-               | CopyData (Annotation) (String)-               | CopyTo (Annotation) (CopyToSource) (String) (([CopyToOption]))-               | Truncate (Annotation) (([Name])) (RestartIdentity) (Cascade)-               | CreateTable (Annotation) (Name) (AttributeDefList) (ConstraintList) (MaybeTablePartitionDef) (Replace)-               | AlterTable (Annotation) (Name) (AlterTableOperation)-               | AlterDatabase (Annotation) (Name) (AlterDatabaseOperation)-               | CreateSequence (Annotation) (Name) (Integer) ((Maybe Integer)) ((Maybe Integer)) (Integer) (Integer)-               | AlterSequence (Annotation) (Name) (AlterSequenceOperation)-               | CreateTableAs (Annotation) (Name) (Replace) (QueryExpr)-               | CreateView (Annotation) (Name) (MaybeNameComponentList) (QueryExpr)-               | AlterView (Annotation) (Name) (MaybeNameComponentList) (QueryExpr)-               | CreateType (Annotation) (Name) (TypeAttributeDefList)-               | CreateUser (Annotation) (Name) (String)-               | CreateLogin (Annotation) (Name) (String)-               | AlterUser (Annotation) (Name) (String)-               | AlterLogin (Annotation) (Name) (String)-               | CreateSchema (Annotation) (NameComponent) ((Maybe Name))-               | AlterSchema (Annotation) (NameComponent) (AlterSchemaOperation)-               | CreateFunction (Annotation) (Name) (ParamDefList) (TypeName) (Replace) (Language) (FnBody) (Volatility)-               | CreateDomain (Annotation) (Name) (TypeName) (String) (MaybeBoolExpr)-               | CreateLanguage (Annotation) (String)-               | CreateTrigger (Annotation) (NameComponent) (TriggerWhen) (([TriggerEvent])) (Name) (TriggerFire) (Name) (ScalarExprList)-               | DropFunction (Annotation) (IfExists) (NameTypeNameListPairList) (Cascade)-               | DropSomething (Annotation) (DropType) (IfExists) (([Name])) (Cascade)-               | DropTrigger (Annotation) (IfExists) (NameComponent) (Name) (Cascade)-               | CreateDatabase (Annotation) (Name)-               | Set (Annotation) (String) (([SetValue]))-               | Notify (Annotation) (String)-               | Into (Annotation) (Bool) (([Name])) (Statement)-               | Assignment (Annotation) (Name) (ScalarExpr)-               | Return (Annotation) (MaybeScalarExpr)-               | ReturnNext (Annotation) (ScalarExpr)-               | ReturnQuery (Annotation) (QueryExpr)-               | Raise (Annotation) (RaiseType) (String) (ScalarExprList)-               | NullStatement (Annotation)-               | Perform (Annotation) (ScalarExpr)-               | Execute (Annotation) (ScalarExpr)-               | ForQueryStatement (Annotation) ((Maybe String)) (NameComponent) (QueryExpr) (StatementList)-               | ForIntegerStatement (Annotation) ((Maybe String)) (NameComponent) (ScalarExpr) (ScalarExpr) (StatementList)-               | LoopStatement (Annotation) ((Maybe String)) (StatementList)-               | WhileStatement (Annotation) ((Maybe String)) (ScalarExpr) (StatementList)-               | ContinueStatement (Annotation) ((Maybe String))-               | ExitStatement (Annotation) ((Maybe String))-               | CaseStatementSimple (Annotation) (ScalarExpr) (ScalarExprListStatementListTripleList) (StatementList)-               | CaseStatement (Annotation) (ScalarExprListStatementListTripleList) (StatementList)-               | If (Annotation) (ScalarExprStatementListPairList) (StatementList)-               | Block (Annotation) ((Maybe String)) (VarDefList) (StatementList)-               | AntiStatement (String)-               | DeclareStatement (Annotation) (([(String,TypeName,Maybe ScalarExpr)]))-               | ExecStatement (Annotation) (Name) (ScalarExprList)-               | CreateIndexTSQL (Annotation) (NameComponent) (Name) (([NameComponent]))-               deriving ( Data,Eq,Show,Typeable)--- cata-_sem_Statement :: Statement ->-                 T_Statement-_sem_Statement (QueryStatement _ann _ex) =-    (_sem_Statement_QueryStatement (_sem_Annotation _ann) (_sem_QueryExpr _ex))-_sem_Statement (Insert _ann _table _targetCols _insData _returning) =-    (_sem_Statement_Insert (_sem_Annotation _ann) (_sem_Name _table) _targetCols (_sem_QueryExpr _insData) (_sem_MaybeSelectList _returning))-_sem_Statement (Update _ann _table _assigns _fromList _whr _returning) =-    (_sem_Statement_Update (_sem_Annotation _ann) (_sem_Name _table) (_sem_SetClauseList _assigns) (_sem_TableRefList _fromList) (_sem_MaybeBoolExpr _whr) (_sem_MaybeSelectList _returning))-_sem_Statement (Delete _ann _table _using _whr _returning) =-    (_sem_Statement_Delete (_sem_Annotation _ann) (_sem_Name _table) (_sem_TableRefList _using) (_sem_MaybeBoolExpr _whr) (_sem_MaybeSelectList _returning))-_sem_Statement (CopyFrom _ann _table _targetCols _source _opts) =-    (_sem_Statement_CopyFrom (_sem_Annotation _ann) (_sem_Name _table) _targetCols _source _opts)-_sem_Statement (CopyData _ann _insData) =-    (_sem_Statement_CopyData (_sem_Annotation _ann) _insData)-_sem_Statement (CopyTo _ann _cp _fn _opts) =-    (_sem_Statement_CopyTo (_sem_Annotation _ann) _cp _fn _opts)-_sem_Statement (Truncate _ann _tables _restartIdentity _cascade) =-    (_sem_Statement_Truncate (_sem_Annotation _ann) _tables _restartIdentity _cascade)-_sem_Statement (CreateTable _ann _name _atts _cons _partition _rep) =-    (_sem_Statement_CreateTable (_sem_Annotation _ann) (_sem_Name _name) (_sem_AttributeDefList _atts) (_sem_ConstraintList _cons) (_sem_MaybeTablePartitionDef _partition) _rep)-_sem_Statement (AlterTable _ann _name _operation) =-    (_sem_Statement_AlterTable (_sem_Annotation _ann) (_sem_Name _name) (_sem_AlterTableOperation _operation))-_sem_Statement (AlterDatabase _ann _name _operation) =-    (_sem_Statement_AlterDatabase (_sem_Annotation _ann) (_sem_Name _name) (_sem_AlterDatabaseOperation _operation))-_sem_Statement (CreateSequence _ann _name _incr _min _max _start _cache) =-    (_sem_Statement_CreateSequence (_sem_Annotation _ann) (_sem_Name _name) _incr _min _max _start _cache)-_sem_Statement (AlterSequence _ann _name _operation) =-    (_sem_Statement_AlterSequence (_sem_Annotation _ann) (_sem_Name _name) (_sem_AlterSequenceOperation _operation))-_sem_Statement (CreateTableAs _ann _name _rep _expr) =-    (_sem_Statement_CreateTableAs (_sem_Annotation _ann) (_sem_Name _name) _rep (_sem_QueryExpr _expr))-_sem_Statement (CreateView _ann _name _colNames _expr) =-    (_sem_Statement_CreateView (_sem_Annotation _ann) (_sem_Name _name) _colNames (_sem_QueryExpr _expr))-_sem_Statement (AlterView _ann _name _colNames _expr) =-    (_sem_Statement_AlterView (_sem_Annotation _ann) (_sem_Name _name) _colNames (_sem_QueryExpr _expr))-_sem_Statement (CreateType _ann _name _atts) =-    (_sem_Statement_CreateType (_sem_Annotation _ann) (_sem_Name _name) (_sem_TypeAttributeDefList _atts))-_sem_Statement (CreateUser _ann _name _password) =-    (_sem_Statement_CreateUser (_sem_Annotation _ann) (_sem_Name _name) _password)-_sem_Statement (CreateLogin _ann _name _password) =-    (_sem_Statement_CreateLogin (_sem_Annotation _ann) (_sem_Name _name) _password)-_sem_Statement (AlterUser _ann _name _password) =-    (_sem_Statement_AlterUser (_sem_Annotation _ann) (_sem_Name _name) _password)-_sem_Statement (AlterLogin _ann _name _password) =-    (_sem_Statement_AlterLogin (_sem_Annotation _ann) (_sem_Name _name) _password)-_sem_Statement (CreateSchema _ann _name _owner) =-    (_sem_Statement_CreateSchema (_sem_Annotation _ann) _name _owner)-_sem_Statement (AlterSchema _ann _name _operation) =-    (_sem_Statement_AlterSchema (_sem_Annotation _ann) _name (_sem_AlterSchemaOperation _operation))-_sem_Statement (CreateFunction _ann _name _params _rettype _rep _lang _body _vol) =-    (_sem_Statement_CreateFunction (_sem_Annotation _ann) (_sem_Name _name) (_sem_ParamDefList _params) (_sem_TypeName _rettype) _rep _lang (_sem_FnBody _body) _vol)-_sem_Statement (CreateDomain _ann _name _typ _constraintName _check) =-    (_sem_Statement_CreateDomain (_sem_Annotation _ann) (_sem_Name _name) (_sem_TypeName _typ) _constraintName (_sem_MaybeBoolExpr _check))-_sem_Statement (CreateLanguage _ann _name) =-    (_sem_Statement_CreateLanguage (_sem_Annotation _ann) _name)-_sem_Statement (CreateTrigger _ann _name _wh _events _tbl _firing _fnName _fnArgs) =-    (_sem_Statement_CreateTrigger (_sem_Annotation _ann) _name _wh _events (_sem_Name _tbl) _firing (_sem_Name _fnName) (_sem_ScalarExprList _fnArgs))-_sem_Statement (DropFunction _ann _ifE _sigs _cascade) =-    (_sem_Statement_DropFunction (_sem_Annotation _ann) _ifE (_sem_NameTypeNameListPairList _sigs) _cascade)-_sem_Statement (DropSomething _ann _dropType _ifE _names _cascade) =-    (_sem_Statement_DropSomething (_sem_Annotation _ann) _dropType _ifE _names _cascade)-_sem_Statement (DropTrigger _ann _ifE _name _tbl _cascade) =-    (_sem_Statement_DropTrigger (_sem_Annotation _ann) _ifE _name (_sem_Name _tbl) _cascade)-_sem_Statement (CreateDatabase _ann _nm) =-    (_sem_Statement_CreateDatabase (_sem_Annotation _ann) (_sem_Name _nm))-_sem_Statement (Set _ann _name _values) =-    (_sem_Statement_Set (_sem_Annotation _ann) _name _values)-_sem_Statement (Notify _ann _name) =-    (_sem_Statement_Notify (_sem_Annotation _ann) _name)-_sem_Statement (Into _ann _strict _into _stmt) =-    (_sem_Statement_Into (_sem_Annotation _ann) _strict _into (_sem_Statement _stmt))-_sem_Statement (Assignment _ann _target _value) =-    (_sem_Statement_Assignment (_sem_Annotation _ann) (_sem_Name _target) (_sem_ScalarExpr _value))-_sem_Statement (Return _ann _value) =-    (_sem_Statement_Return (_sem_Annotation _ann) (_sem_MaybeScalarExpr _value))-_sem_Statement (ReturnNext _ann _expr) =-    (_sem_Statement_ReturnNext (_sem_Annotation _ann) (_sem_ScalarExpr _expr))-_sem_Statement (ReturnQuery _ann _sel) =-    (_sem_Statement_ReturnQuery (_sem_Annotation _ann) (_sem_QueryExpr _sel))-_sem_Statement (Raise _ann _level _message _args) =-    (_sem_Statement_Raise (_sem_Annotation _ann) _level _message (_sem_ScalarExprList _args))-_sem_Statement (NullStatement _ann) =-    (_sem_Statement_NullStatement (_sem_Annotation _ann))-_sem_Statement (Perform _ann _expr) =-    (_sem_Statement_Perform (_sem_Annotation _ann) (_sem_ScalarExpr _expr))-_sem_Statement (Execute _ann _expr) =-    (_sem_Statement_Execute (_sem_Annotation _ann) (_sem_ScalarExpr _expr))-_sem_Statement (ForQueryStatement _ann _lb _var _sel _sts) =-    (_sem_Statement_ForQueryStatement (_sem_Annotation _ann) _lb _var (_sem_QueryExpr _sel) (_sem_StatementList _sts))-_sem_Statement (ForIntegerStatement _ann _lb _var _from _to _sts) =-    (_sem_Statement_ForIntegerStatement (_sem_Annotation _ann) _lb _var (_sem_ScalarExpr _from) (_sem_ScalarExpr _to) (_sem_StatementList _sts))-_sem_Statement (LoopStatement _ann _lb _sts) =-    (_sem_Statement_LoopStatement (_sem_Annotation _ann) _lb (_sem_StatementList _sts))-_sem_Statement (WhileStatement _ann _lb _expr _sts) =-    (_sem_Statement_WhileStatement (_sem_Annotation _ann) _lb (_sem_ScalarExpr _expr) (_sem_StatementList _sts))-_sem_Statement (ContinueStatement _ann _lb) =-    (_sem_Statement_ContinueStatement (_sem_Annotation _ann) _lb)-_sem_Statement (ExitStatement _ann _lb) =-    (_sem_Statement_ExitStatement (_sem_Annotation _ann) _lb)-_sem_Statement (CaseStatementSimple _ann _val _cases _els) =-    (_sem_Statement_CaseStatementSimple (_sem_Annotation _ann) (_sem_ScalarExpr _val) (_sem_ScalarExprListStatementListTripleList _cases) (_sem_StatementList _els))-_sem_Statement (CaseStatement _ann _cases _els) =-    (_sem_Statement_CaseStatement (_sem_Annotation _ann) (_sem_ScalarExprListStatementListTripleList _cases) (_sem_StatementList _els))-_sem_Statement (If _ann _cases _els) =-    (_sem_Statement_If (_sem_Annotation _ann) (_sem_ScalarExprStatementListPairList _cases) (_sem_StatementList _els))-_sem_Statement (Block _ann _lb _vars _sts) =-    (_sem_Statement_Block (_sem_Annotation _ann) _lb (_sem_VarDefList _vars) (_sem_StatementList _sts))-_sem_Statement (AntiStatement _string) =-    (_sem_Statement_AntiStatement _string)-_sem_Statement (DeclareStatement _ann _ds) =-    (_sem_Statement_DeclareStatement (_sem_Annotation _ann) _ds)-_sem_Statement (ExecStatement _ann _spName _args) =-    (_sem_Statement_ExecStatement (_sem_Annotation _ann) (_sem_Name _spName) (_sem_ScalarExprList _args))-_sem_Statement (CreateIndexTSQL _ann _nm _obj _cols) =-    (_sem_Statement_CreateIndexTSQL (_sem_Annotation _ann) _nm (_sem_Name _obj) _cols)--- semantic domain-type T_Statement = Catalog ->-                   TypeCheckFlags ->-                   (Maybe TypeExtra) ->-                   ( Statement,Statement)-data Inh_Statement = Inh_Statement {_cat_Inh_Statement :: Catalog,_flags_Inh_Statement :: TypeCheckFlags,_imCast_Inh_Statement :: (Maybe TypeExtra)}-data Syn_Statement = Syn_Statement {_annotatedTree_Syn_Statement :: Statement,_originalTree_Syn_Statement :: Statement}-_wrap_Statement :: T_Statement ->-                  Inh_Statement ->-                  Syn_Statement-_wrap_Statement sem (Inh_Statement _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_Statement _lhsOannotatedTree _lhsOoriginalTree))-_sem_Statement_QueryStatement :: T_Annotation ->-                                T_QueryExpr ->-                                T_Statement-_sem_Statement_QueryStatement ann_ ex_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exOexpectedType :: (Maybe [TypeExtra])-              _exOouterDownEnv :: (Maybe Environment)-              _exOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exOcat :: Catalog-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: QueryExpr-              _exIoriginalTree :: QueryExpr-              _exIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 19671 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 16, column 5)-              _exOexpectedType =-                  ({-# LINE 16 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   liftM (map snd) _exIupType-                   {-# LINE 19677 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 91, column 20)-              _exOouterDownEnv =-                  ({-# LINE 91 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Nothing-                   {-# LINE 19683 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 837, column 32)-              _exOassignmentCastContext =-                  ({-# LINE 837 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 19689 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   QueryStatement _annIannotatedTree _exIannotatedTree-                   {-# LINE 19695 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   QueryStatement _annIoriginalTree _exIoriginalTree-                   {-# LINE 19701 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 19707 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 19713 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 19719 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 19725 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 19731 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 19737 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 19743 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 19749 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOexpectedType _exOflags _exOimCast _exOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Insert :: T_Annotation ->-                        T_Name ->-                        ([NameComponent]) ->-                        T_QueryExpr ->-                        T_MaybeSelectList ->-                        T_Statement-_sem_Statement_Insert ann_ table_ targetCols_ insData_ returning_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _tpe :: (Either [TypeError] [TypeExtra])-              _tableOtpe :: (Either [TypeError] TypeExtra)-              _insDataOexpectedType :: (Maybe [TypeExtra])-              _insDataOouterDownEnv :: (Maybe Environment)-              _tooManyCols :: (Maybe [TypeError])-              _insDataOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tableOcat :: Catalog-              _tableOflags :: TypeCheckFlags-              _tableOimCast :: (Maybe TypeExtra)-              _insDataOcat :: Catalog-              _insDataOflags :: TypeCheckFlags-              _insDataOimCast :: (Maybe TypeExtra)-              _returningOcat :: Catalog-              _returningOflags :: TypeCheckFlags-              _returningOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tableIannotatedTree :: Name-              _tableIoriginalTree :: Name-              _insDataIannotatedTree :: QueryExpr-              _insDataIoriginalTree :: QueryExpr-              _insDataIupType :: (Maybe [(Text,TypeExtra)])-              _returningIannotatedTree :: MaybeSelectList-              _returningIoriginalTree :: MaybeSelectList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)-              _annOtpe =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Left []-                   {-# LINE 19800 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 25, column 5)-              _tpe =-                  ({-# LINE 25 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   do-                   let tnm = nameComponents _tableIoriginalTree-                   (_,pub,_) <- catLookupTableAndAttrs _lhsIcat tnm-                   case targetCols_ of-                        []  -> return $ map snd pub-                        tcs -> do-                               tcs' <- mapM xnmcString tcs-                               let utcs' = nub tcs'-                               when (length utcs' /= length tcs') $-                                   Left $ map DuplicateColumnName-                                        $ nub (tcs' \\ utcs')-                               forM tcs' $ \x ->-                                   maybe (Left [UnrecognisedIdentifier x])-                                         Right $ lookup x pub-                   {-# LINE 19819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 44, column 5)-              _tableOtpe =-                  ({-# LINE 44 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Left (either id (const []) _tpe-                         ++ maybe [] id _tooManyCols    )-                   {-# LINE 19826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 47, column 5)-              _insDataOexpectedType =-                  ({-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 19832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 49, column 5)-              _insDataOouterDownEnv =-                  ({-# LINE 49 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Nothing-                   {-# LINE 19838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 54, column 5)-              _tooManyCols =-                  ({-# LINE 54 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   do-                   x <- _insDataIupType-                   y <- either (const Nothing) Just _tpe-                   if (length x > length y)-                       then Just [TooManyColumnsInInsert]-                       else Nothing-                   {-# LINE 19849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 835, column 24)-              _insDataOassignmentCastContext =-                  ({-# LINE 835 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 19855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Insert _annIannotatedTree _tableIannotatedTree targetCols_ _insDataIannotatedTree _returningIannotatedTree-                   {-# LINE 19861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Insert _annIoriginalTree _tableIoriginalTree targetCols_ _insDataIoriginalTree _returningIoriginalTree-                   {-# LINE 19867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 19873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 19879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 19885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 19891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 19897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 19903 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 19909 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 19915 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _insDataOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 19921 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _insDataOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 19927 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _insDataOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 19933 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 19939 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 19945 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 19951 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tableIannotatedTree,_tableIoriginalTree) =-                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe-              ( _insDataIannotatedTree,_insDataIoriginalTree,_insDataIupType) =-                  insData_ _insDataOassignmentCastContext _insDataOcat _insDataOexpectedType _insDataOflags _insDataOimCast _insDataOouterDownEnv-              ( _returningIannotatedTree,_returningIoriginalTree) =-                  returning_ _returningOcat _returningOflags _returningOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Update :: T_Annotation ->-                        T_Name ->-                        T_SetClauseList ->-                        T_TableRefList ->-                        T_MaybeBoolExpr ->-                        T_MaybeSelectList ->-                        T_Statement-_sem_Statement_Update ann_ table_ assigns_ fromList_ whr_ returning_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _tableOtpe :: (Either [TypeError] TypeExtra)-              _whrOdownEnv :: Environment-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tableOcat :: Catalog-              _tableOflags :: TypeCheckFlags-              _tableOimCast :: (Maybe TypeExtra)-              _assignsOcat :: Catalog-              _assignsOflags :: TypeCheckFlags-              _assignsOimCast :: (Maybe TypeExtra)-              _fromListOcat :: Catalog-              _fromListOflags :: TypeCheckFlags-              _fromListOimCast :: (Maybe TypeExtra)-              _whrOcat :: Catalog-              _whrOflags :: TypeCheckFlags-              _whrOimCast :: (Maybe TypeExtra)-              _returningOcat :: Catalog-              _returningOflags :: TypeCheckFlags-              _returningOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tableIannotatedTree :: Name-              _tableIoriginalTree :: Name-              _assignsIannotatedTree :: SetClauseList-              _assignsIoriginalTree :: SetClauseList-              _fromListIannotatedTree :: TableRefList-              _fromListIoriginalTree :: TableRefList-              _fromListIupEnv :: Environment-              _whrIannotatedTree :: MaybeBoolExpr-              _whrIoriginalTree :: MaybeBoolExpr-              _returningIannotatedTree :: MaybeSelectList-              _returningIoriginalTree :: MaybeSelectList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 219, column 24)-              _tableOtpe =-                  ({-# LINE 219 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 220, column 24)-              _whrOdownEnv =-                  ({-# LINE 220 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 20019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)-              _annOtpe =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Left []-                   {-# LINE 20025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Update _annIannotatedTree _tableIannotatedTree _assignsIannotatedTree _fromListIannotatedTree _whrIannotatedTree _returningIannotatedTree-                   {-# LINE 20031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Update _annIoriginalTree _tableIoriginalTree _assignsIoriginalTree _fromListIoriginalTree _whrIoriginalTree _returningIoriginalTree-                   {-# LINE 20037 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20043 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20049 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20055 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20061 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20067 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20073 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20079 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20085 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _assignsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20091 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _assignsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20097 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _assignsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20103 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fromListOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20109 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fromListOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20115 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fromListOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20121 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _whrOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20127 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _whrOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20133 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _whrOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20139 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20145 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20151 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tableIannotatedTree,_tableIoriginalTree) =-                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe-              ( _assignsIannotatedTree,_assignsIoriginalTree) =-                  assigns_ _assignsOcat _assignsOflags _assignsOimCast-              ( _fromListIannotatedTree,_fromListIoriginalTree,_fromListIupEnv) =-                  fromList_ _fromListOcat _fromListOflags _fromListOimCast-              ( _whrIannotatedTree,_whrIoriginalTree) =-                  whr_ _whrOcat _whrOdownEnv _whrOflags _whrOimCast-              ( _returningIannotatedTree,_returningIoriginalTree) =-                  returning_ _returningOcat _returningOflags _returningOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Delete :: T_Annotation ->-                        T_Name ->-                        T_TableRefList ->-                        T_MaybeBoolExpr ->-                        T_MaybeSelectList ->-                        T_Statement-_sem_Statement_Delete ann_ table_ using_ whr_ returning_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _tableOtpe :: (Either [TypeError] TypeExtra)-              _whrOdownEnv :: Environment-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tableOcat :: Catalog-              _tableOflags :: TypeCheckFlags-              _tableOimCast :: (Maybe TypeExtra)-              _usingOcat :: Catalog-              _usingOflags :: TypeCheckFlags-              _usingOimCast :: (Maybe TypeExtra)-              _whrOcat :: Catalog-              _whrOflags :: TypeCheckFlags-              _whrOimCast :: (Maybe TypeExtra)-              _returningOcat :: Catalog-              _returningOflags :: TypeCheckFlags-              _returningOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tableIannotatedTree :: Name-              _tableIoriginalTree :: Name-              _usingIannotatedTree :: TableRefList-              _usingIoriginalTree :: TableRefList-              _usingIupEnv :: Environment-              _whrIannotatedTree :: MaybeBoolExpr-              _whrIoriginalTree :: MaybeBoolExpr-              _returningIannotatedTree :: MaybeSelectList-              _returningIoriginalTree :: MaybeSelectList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 170, column 24)-              _tableOtpe =-                  ({-# LINE 170 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 171, column 24)-              _whrOdownEnv =-                  ({-# LINE 171 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 20223 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)-              _annOtpe =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Left []-                   {-# LINE 20229 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Delete _annIannotatedTree _tableIannotatedTree _usingIannotatedTree _whrIannotatedTree _returningIannotatedTree-                   {-# LINE 20235 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Delete _annIoriginalTree _tableIoriginalTree _usingIoriginalTree _whrIoriginalTree _returningIoriginalTree-                   {-# LINE 20241 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20247 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20253 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20259 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20265 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20271 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _usingOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _usingOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _usingOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _whrOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20313 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _whrOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20319 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _whrOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20325 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20331 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20337 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _returningOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20343 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tableIannotatedTree,_tableIoriginalTree) =-                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe-              ( _usingIannotatedTree,_usingIoriginalTree,_usingIupEnv) =-                  using_ _usingOcat _usingOflags _usingOimCast-              ( _whrIannotatedTree,_whrIoriginalTree) =-                  whr_ _whrOcat _whrOdownEnv _whrOflags _whrOimCast-              ( _returningIannotatedTree,_returningIoriginalTree) =-                  returning_ _returningOcat _returningOflags _returningOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CopyFrom :: T_Annotation ->-                          T_Name ->-                          ([NameComponent]) ->-                          CopyFromSource ->-                          ([CopyFromOption]) ->-                          T_Statement-_sem_Statement_CopyFrom ann_ table_ targetCols_ source_ opts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _tableOtpe :: (Either [TypeError] TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tableOcat :: Catalog-              _tableOflags :: TypeCheckFlags-              _tableOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tableIannotatedTree :: Name-              _tableIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 137, column 26)-              _tableOtpe =-                  ({-# LINE 137 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20384 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)-              _annOtpe =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Left []-                   {-# LINE 20390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CopyFrom _annIannotatedTree _tableIannotatedTree targetCols_ source_ opts_-                   {-# LINE 20396 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CopyFrom _annIoriginalTree _tableIoriginalTree targetCols_ source_ opts_-                   {-# LINE 20402 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20408 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20414 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20420 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20426 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20432 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20438 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20444 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tableOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20450 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tableIannotatedTree,_tableIoriginalTree) =-                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CopyData :: T_Annotation ->-                          String ->-                          T_Statement-_sem_Statement_CopyData ann_ insData_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 136, column 26)-              _annOtpe =-                  ({-# LINE 136 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20476 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CopyData _annIannotatedTree insData_-                   {-# LINE 20482 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CopyData _annIoriginalTree insData_-                   {-# LINE 20488 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20494 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20500 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20506 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CopyTo :: T_Annotation ->-                        CopyToSource ->-                        String ->-                        ([CopyToOption]) ->-                        T_Statement-_sem_Statement_CopyTo ann_ cp_ fn_ opts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)-              _annOtpe =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Left []-                   {-# LINE 20544 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CopyTo _annIannotatedTree cp_ fn_ opts_-                   {-# LINE 20550 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CopyTo _annIoriginalTree cp_ fn_ opts_-                   {-# LINE 20556 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20562 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20568 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20574 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20580 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20586 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Truncate :: T_Annotation ->-                          ([Name]) ->-                          RestartIdentity ->-                          Cascade ->-                          T_Statement-_sem_Statement_Truncate ann_ tables_ restartIdentity_ cascade_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)-              _annOtpe =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}-                   Left []-                   {-# LINE 20612 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Truncate _annIannotatedTree tables_ restartIdentity_ cascade_-                   {-# LINE 20618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Truncate _annIoriginalTree tables_ restartIdentity_ cascade_-                   {-# LINE 20624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateTable :: T_Annotation ->-                             T_Name ->-                             T_AttributeDefList ->-                             T_ConstraintList ->-                             T_MaybeTablePartitionDef ->-                             Replace ->-                             T_Statement-_sem_Statement_CreateTable ann_ name_ atts_ cons_ partition_ rep_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _attsOcat :: Catalog-              _attsOflags :: TypeCheckFlags-              _attsOimCast :: (Maybe TypeExtra)-              _consOcat :: Catalog-              _consOflags :: TypeCheckFlags-              _consOimCast :: (Maybe TypeExtra)-              _partitionOcat :: Catalog-              _partitionOflags :: TypeCheckFlags-              _partitionOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _attsIannotatedTree :: AttributeDefList-              _attsIoriginalTree :: AttributeDefList-              _consIannotatedTree :: ConstraintList-              _consIoriginalTree :: ConstraintList-              _partitionIannotatedTree :: MaybeTablePartitionDef-              _partitionIoriginalTree :: MaybeTablePartitionDef-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 152, column 29)-              _annOtpe =-                  ({-# LINE 152 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20703 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 153, column 29)-              _nameOtpe =-                  ({-# LINE 153 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20709 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateTable _annIannotatedTree _nameIannotatedTree _attsIannotatedTree _consIannotatedTree _partitionIannotatedTree rep_-                   {-# LINE 20715 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateTable _annIoriginalTree _nameIoriginalTree _attsIoriginalTree _consIoriginalTree _partitionIoriginalTree rep_-                   {-# LINE 20721 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20727 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20733 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20739 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20745 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20751 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20757 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20763 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20769 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20775 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20781 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20787 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _consOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _consOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20799 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _consOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _partitionOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _attsIannotatedTree,_attsIoriginalTree) =-                  atts_ _attsOcat _attsOflags _attsOimCast-              ( _consIannotatedTree,_consIoriginalTree) =-                  cons_ _consOcat _consOflags _consOimCast-              ( _partitionIannotatedTree,_partitionIoriginalTree) =-                  partition_ _partitionOcat _partitionOflags _partitionOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AlterTable :: T_Annotation ->-                            T_Name ->-                            T_AlterTableOperation ->-                            T_Statement-_sem_Statement_AlterTable ann_ name_ operation_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _operationOcat :: Catalog-              _operationOflags :: TypeCheckFlags-              _operationOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _operationIannotatedTree :: AlterTableOperation-              _operationIoriginalTree :: AlterTableOperation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 117, column 28)-              _annOtpe =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 118, column 28)-              _nameOtpe =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterTable _annIannotatedTree _nameIannotatedTree _operationIannotatedTree-                   {-# LINE 20879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterTable _annIoriginalTree _nameIoriginalTree _operationIoriginalTree-                   {-# LINE 20885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 20891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 20897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20903 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20909 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20915 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20921 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20927 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20933 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 20939 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 20945 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 20951 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _operationIannotatedTree,_operationIoriginalTree) =-                  operation_ _operationOcat _operationOflags _operationOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AlterDatabase :: T_Annotation ->-                               T_Name ->-                               T_AlterDatabaseOperation ->-                               T_Statement-_sem_Statement_AlterDatabase ann_ name_ operation_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _operationOcat :: Catalog-              _operationOflags :: TypeCheckFlags-              _operationOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _operationIannotatedTree :: AlterDatabaseOperation-              _operationIoriginalTree :: AlterDatabaseOperation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 110, column 31)-              _annOtpe =-                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20991 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 111, column 31)-              _nameOtpe =-                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 20997 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterDatabase _annIannotatedTree _nameIannotatedTree _operationIannotatedTree-                   {-# LINE 21003 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterDatabase _annIoriginalTree _nameIoriginalTree _operationIoriginalTree-                   {-# LINE 21009 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21015 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21021 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21027 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21033 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21039 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21045 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21051 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21057 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21063 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _operationIannotatedTree,_operationIoriginalTree) =-                  operation_ _operationOcat _operationOflags _operationOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateSequence :: T_Annotation ->-                                T_Name ->-                                Integer ->-                                (Maybe Integer) ->-                                (Maybe Integer) ->-                                Integer ->-                                Integer ->-                                T_Statement-_sem_Statement_CreateSequence ann_ name_ incr_ min_ max_ start_ cache_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 150, column 32)-              _annOtpe =-                  ({-# LINE 150 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21114 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 151, column 32)-              _nameOtpe =-                  ({-# LINE 151 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateSequence _annIannotatedTree _nameIannotatedTree incr_ min_ max_ start_ cache_-                   {-# LINE 21126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateSequence _annIoriginalTree _nameIoriginalTree incr_ min_ max_ start_ cache_-                   {-# LINE 21132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21162 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21168 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21180 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AlterSequence :: T_Annotation ->-                               T_Name ->-                               T_AlterSequenceOperation ->-                               T_Statement-_sem_Statement_AlterSequence ann_ name_ operation_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _operationOcat :: Catalog-              _operationOflags :: TypeCheckFlags-              _operationOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _operationIannotatedTree :: AlterSequenceOperation-              _operationIoriginalTree :: AlterSequenceOperation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 115, column 31)-              _annOtpe =-                  ({-# LINE 115 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21218 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 116, column 31)-              _nameOtpe =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21224 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequence _annIannotatedTree _nameIannotatedTree _operationIannotatedTree-                   {-# LINE 21230 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSequence _annIoriginalTree _nameIoriginalTree _operationIoriginalTree-                   {-# LINE 21236 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21242 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21248 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21254 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21260 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21266 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21272 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21278 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21284 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21290 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21296 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21302 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _operationIannotatedTree,_operationIoriginalTree) =-                  operation_ _operationOcat _operationOflags _operationOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateTableAs :: T_Annotation ->-                               T_Name ->-                               Replace ->-                               T_QueryExpr ->-                               T_Statement-_sem_Statement_CreateTableAs ann_ name_ rep_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOouterDownEnv :: (Maybe Environment)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _exprOexpectedType :: (Maybe [TypeExtra])-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _exprIannotatedTree :: QueryExpr-              _exprIoriginalTree :: QueryExpr-              _exprIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 154, column 31)-              _annOtpe =-                  ({-# LINE 154 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 155, column 31)-              _exprOouterDownEnv =-                  ({-# LINE 155 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 21353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 156, column 31)-              _nameOtpe =-                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 19, column 5)-              _exprOexpectedType =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   liftM (map snd) _exprIupType-                   {-# LINE 21365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 827, column 31)-              _exprOassignmentCastContext =-                  ({-# LINE 827 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 21371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateTableAs _annIannotatedTree _nameIannotatedTree rep_ _exprIannotatedTree-                   {-# LINE 21377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateTableAs _annIoriginalTree _nameIoriginalTree rep_ _exprIoriginalTree-                   {-# LINE 21383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _exprIannotatedTree,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOexpectedType _exprOflags _exprOimCast _exprOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateView :: T_Annotation ->-                            T_Name ->-                            MaybeNameComponentList ->-                            T_QueryExpr ->-                            T_Statement-_sem_Statement_CreateView ann_ name_ colNames_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOouterDownEnv :: (Maybe Environment)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _exprOexpectedType :: (Maybe [TypeExtra])-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _exprIannotatedTree :: QueryExpr-              _exprIoriginalTree :: QueryExpr-              _exprIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 167, column 28)-              _annOtpe =-                  ({-# LINE 167 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21494 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 168, column 28)-              _exprOouterDownEnv =-                  ({-# LINE 168 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 21500 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 169, column 28)-              _nameOtpe =-                  ({-# LINE 169 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21506 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 19, column 5)-              _exprOexpectedType =-                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   liftM (map snd) _exprIupType-                   {-# LINE 21512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 829, column 28)-              _exprOassignmentCastContext =-                  ({-# LINE 829 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 21518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateView _annIannotatedTree _nameIannotatedTree colNames_ _exprIannotatedTree-                   {-# LINE 21524 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateView _annIoriginalTree _nameIoriginalTree colNames_ _exprIoriginalTree-                   {-# LINE 21530 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21536 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21542 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21548 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21554 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21560 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21566 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21572 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21578 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21584 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21590 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21596 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _exprIannotatedTree,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOexpectedType _exprOflags _exprOimCast _exprOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AlterView :: T_Annotation ->-                           T_Name ->-                           MaybeNameComponentList ->-                           T_QueryExpr ->-                           T_Statement-_sem_Statement_AlterView ann_ name_ colNames_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOexpectedType :: (Maybe [TypeExtra])-              _exprOouterDownEnv :: (Maybe Environment)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _exprIannotatedTree :: QueryExpr-              _exprIoriginalTree :: QueryExpr-              _exprIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 121, column 27)-              _annOtpe =-                  ({-# LINE 121 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21641 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 122, column 27)-              _exprOexpectedType =-                  ({-# LINE 122 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 21647 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 123, column 27)-              _exprOouterDownEnv =-                  ({-# LINE 123 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 21653 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 124, column 27)-              _nameOtpe =-                  ({-# LINE 124 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21659 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 824, column 27)-              _exprOassignmentCastContext =-                  ({-# LINE 824 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 21665 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterView _annIannotatedTree _nameIannotatedTree colNames_ _exprIannotatedTree-                   {-# LINE 21671 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterView _annIoriginalTree _nameIoriginalTree colNames_ _exprIoriginalTree-                   {-# LINE 21677 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21683 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21689 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21695 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21701 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21707 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21713 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21719 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21725 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21731 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21737 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21743 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _exprIannotatedTree,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOexpectedType _exprOflags _exprOimCast _exprOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateType :: T_Annotation ->-                            T_Name ->-                            T_TypeAttributeDefList ->-                            T_Statement-_sem_Statement_CreateType ann_ name_ atts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _attsOcat :: Catalog-              _attsOflags :: TypeCheckFlags-              _attsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _attsIannotatedTree :: TypeAttributeDefList-              _attsIoriginalTree :: TypeAttributeDefList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 163, column 28)-              _annOtpe =-                  ({-# LINE 163 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 164, column 28)-              _nameOtpe =-                  ({-# LINE 164 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateType _annIannotatedTree _nameIannotatedTree _attsIannotatedTree-                   {-# LINE 21795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateType _annIoriginalTree _nameIoriginalTree _attsIoriginalTree-                   {-# LINE 21801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21837 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21843 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _attsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _attsIannotatedTree,_attsIoriginalTree) =-                  atts_ _attsOcat _attsOflags _attsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateUser :: T_Annotation ->-                            T_Name ->-                            String ->-                            T_Statement-_sem_Statement_CreateUser ann_ name_ password_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 165, column 28)-              _annOtpe =-                  ({-# LINE 165 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 166, column 28)-              _nameOtpe =-                  ({-# LINE 166 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 21908 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateUser _annIannotatedTree _nameIannotatedTree password_-                   {-# LINE 21914 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateUser _annIoriginalTree _nameIoriginalTree password_-                   {-# LINE 21920 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 21926 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 21932 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21938 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21944 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21950 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 21956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 21962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 21968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateLogin :: T_Annotation ->-                             T_Name ->-                             String ->-                             T_Statement-_sem_Statement_CreateLogin ann_ name_ password_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 147, column 29)-              _annOtpe =-                  ({-# LINE 147 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22001 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 148, column 29)-              _nameOtpe =-                  ({-# LINE 148 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22007 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateLogin _annIannotatedTree _nameIannotatedTree password_-                   {-# LINE 22013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateLogin _annIoriginalTree _nameIoriginalTree password_-                   {-# LINE 22019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22037 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22043 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22049 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22055 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22061 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22067 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AlterUser :: T_Annotation ->-                           T_Name ->-                           String ->-                           T_Statement-_sem_Statement_AlterUser ann_ name_ password_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 119, column 27)-              _annOtpe =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22100 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 120, column 27)-              _nameOtpe =-                  ({-# LINE 120 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22106 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterUser _annIannotatedTree _nameIannotatedTree password_-                   {-# LINE 22112 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterUser _annIoriginalTree _nameIoriginalTree password_-                   {-# LINE 22118 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22124 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22130 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22136 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22142 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22148 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22154 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22160 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22166 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AlterLogin :: T_Annotation ->-                            T_Name ->-                            String ->-                            T_Statement-_sem_Statement_AlterLogin ann_ name_ password_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 112, column 28)-              _annOtpe =-                  ({-# LINE 112 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 113, column 28)-              _nameOtpe =-                  ({-# LINE 113 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22205 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterLogin _annIannotatedTree _nameIannotatedTree password_-                   {-# LINE 22211 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterLogin _annIoriginalTree _nameIoriginalTree password_-                   {-# LINE 22217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22223 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22229 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22235 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22241 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22247 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22253 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22259 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22265 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateSchema :: T_Annotation ->-                              NameComponent ->-                              (Maybe Name) ->-                              T_Statement-_sem_Statement_CreateSchema ann_ name_ owner_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 149, column 30)-              _annOtpe =-                  ({-# LINE 149 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22292 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateSchema _annIannotatedTree name_ owner_-                   {-# LINE 22298 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateSchema _annIoriginalTree name_ owner_-                   {-# LINE 22304 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22310 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22316 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22322 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22328 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AlterSchema :: T_Annotation ->-                             NameComponent ->-                             T_AlterSchemaOperation ->-                             T_Statement-_sem_Statement_AlterSchema ann_ name_ operation_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _operationOcat :: Catalog-              _operationOflags :: TypeCheckFlags-              _operationOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _operationIannotatedTree :: AlterSchemaOperation-              _operationIoriginalTree :: AlterSchemaOperation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 114, column 29)-              _annOtpe =-                  ({-# LINE 114 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22364 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSchema _annIannotatedTree name_ _operationIannotatedTree-                   {-# LINE 22370 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AlterSchema _annIoriginalTree name_ _operationIoriginalTree-                   {-# LINE 22376 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22382 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22388 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22394 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22400 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22406 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22412 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22418 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _operationOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22424 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _operationIannotatedTree,_operationIoriginalTree) =-                  operation_ _operationOcat _operationOflags _operationOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateFunction :: T_Annotation ->-                                T_Name ->-                                T_ParamDefList ->-                                T_TypeName ->-                                Replace ->-                                Language ->-                                T_FnBody ->-                                Volatility ->-                                T_Statement-_sem_Statement_CreateFunction ann_ name_ params_ rettype_ rep_ lang_ body_ vol_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _paramsOcat :: Catalog-              _paramsOflags :: TypeCheckFlags-              _paramsOimCast :: (Maybe TypeExtra)-              _rettypeOcat :: Catalog-              _rettypeOflags :: TypeCheckFlags-              _rettypeOimCast :: (Maybe TypeExtra)-              _bodyOcat :: Catalog-              _bodyOflags :: TypeCheckFlags-              _bodyOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _paramsIannotatedTree :: ParamDefList-              _paramsIoriginalTree :: ParamDefList-              _rettypeIannotatedTree :: TypeName-              _rettypeInamedType :: (Maybe TypeExtra)-              _rettypeIoriginalTree :: TypeName-              _bodyIannotatedTree :: FnBody-              _bodyIoriginalTree :: FnBody-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 143, column 32)-              _annOtpe =-                  ({-# LINE 143 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22478 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 144, column 32)-              _nameOtpe =-                  ({-# LINE 144 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22484 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateFunction _annIannotatedTree _nameIannotatedTree _paramsIannotatedTree _rettypeIannotatedTree rep_ lang_ _bodyIannotatedTree vol_-                   {-# LINE 22490 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateFunction _annIoriginalTree _nameIoriginalTree _paramsIoriginalTree _rettypeIoriginalTree rep_ lang_ _bodyIoriginalTree vol_-                   {-# LINE 22496 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22502 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22508 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22520 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22526 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22532 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22538 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22544 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _paramsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22550 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _paramsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22556 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _paramsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22562 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _rettypeOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22568 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _rettypeOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22574 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _rettypeOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22580 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _bodyOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22586 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _bodyOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22592 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _bodyOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22598 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _paramsIannotatedTree,_paramsIoriginalTree) =-                  params_ _paramsOcat _paramsOflags _paramsOimCast-              ( _rettypeIannotatedTree,_rettypeInamedType,_rettypeIoriginalTree) =-                  rettype_ _rettypeOcat _rettypeOflags _rettypeOimCast-              ( _bodyIannotatedTree,_bodyIoriginalTree) =-                  body_ _bodyOcat _bodyOflags _bodyOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateDomain :: T_Annotation ->-                              T_Name ->-                              T_TypeName ->-                              String ->-                              T_MaybeBoolExpr ->-                              T_Statement-_sem_Statement_CreateDomain ann_ name_ typ_ constraintName_ check_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _checkOdownEnv :: Environment-              _nameOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nameOcat :: Catalog-              _nameOflags :: TypeCheckFlags-              _nameOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _checkOcat :: Catalog-              _checkOflags :: TypeCheckFlags-              _checkOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nameIannotatedTree :: Name-              _nameIoriginalTree :: Name-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              _checkIannotatedTree :: MaybeBoolExpr-              _checkIoriginalTree :: MaybeBoolExpr-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 140, column 30)-              _annOtpe =-                  ({-# LINE 140 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22651 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 141, column 30)-              _checkOdownEnv =-                  ({-# LINE 141 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 22657 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 142, column 30)-              _nameOtpe =-                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22663 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateDomain _annIannotatedTree _nameIannotatedTree _typIannotatedTree constraintName_ _checkIannotatedTree-                   {-# LINE 22669 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateDomain _annIoriginalTree _nameIoriginalTree _typIoriginalTree constraintName_ _checkIoriginalTree-                   {-# LINE 22675 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22681 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22687 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22699 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22717 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22723 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22729 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22735 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _checkOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _checkOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _checkOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nameIannotatedTree,_nameIoriginalTree) =-                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-              ( _checkIannotatedTree,_checkIoriginalTree) =-                  check_ _checkOcat _checkOdownEnv _checkOflags _checkOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateLanguage :: T_Annotation ->-                                String ->-                                T_Statement-_sem_Statement_CreateLanguage ann_ name_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 146, column 32)-              _annOtpe =-                  ({-# LINE 146 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateLanguage _annIannotatedTree name_-                   {-# LINE 22795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateLanguage _annIoriginalTree name_-                   {-# LINE 22801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateTrigger :: T_Annotation ->-                               NameComponent ->-                               TriggerWhen ->-                               ([TriggerEvent]) ->-                               T_Name ->-                               TriggerFire ->-                               T_Name ->-                               T_ScalarExprList ->-                               T_Statement-_sem_Statement_CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ fnArgs_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _fnArgsOdownEnv :: Environment-              _fnArgsOexpectedCast :: Bool-              _fnArgsOexpectedTypes :: ([TypeExtra])-              _fnNameOtpe :: (Either [TypeError] TypeExtra)-              _tblOtpe :: (Either [TypeError] TypeExtra)-              _fnArgsOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tblOcat :: Catalog-              _tblOflags :: TypeCheckFlags-              _tblOimCast :: (Maybe TypeExtra)-              _fnNameOcat :: Catalog-              _fnNameOflags :: TypeCheckFlags-              _fnNameOimCast :: (Maybe TypeExtra)-              _fnArgsOcat :: Catalog-              _fnArgsOflags :: TypeCheckFlags-              _fnArgsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tblIannotatedTree :: Name-              _tblIoriginalTree :: Name-              _fnNameIannotatedTree :: Name-              _fnNameIoriginalTree :: Name-              _fnArgsIannotatedTree :: ScalarExprList-              _fnArgsIoriginalTree :: ScalarExprList-              _fnArgsIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 157, column 31)-              _annOtpe =-                  ({-# LINE 157 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22883 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 158, column 31)-              _fnArgsOdownEnv =-                  ({-# LINE 158 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 22889 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 159, column 31)-              _fnArgsOexpectedCast =-                  ({-# LINE 159 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 22895 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 160, column 31)-              _fnArgsOexpectedTypes =-                  ({-# LINE 160 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   []-                   {-# LINE 22901 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 161, column 31)-              _fnNameOtpe =-                  ({-# LINE 161 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22907 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 162, column 31)-              _tblOtpe =-                  ({-# LINE 162 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 22913 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 828, column 31)-              _fnArgsOassignmentCastContext =-                  ({-# LINE 828 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 22919 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateTrigger _annIannotatedTree name_ wh_ events_ _tblIannotatedTree firing_ _fnNameIannotatedTree _fnArgsIannotatedTree-                   {-# LINE 22925 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateTrigger _annIoriginalTree name_ wh_ events_ _tblIoriginalTree firing_ _fnNameIoriginalTree _fnArgsIoriginalTree-                   {-# LINE 22931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 22937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 22943 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22949 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22955 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22961 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22967 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22973 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22979 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 22985 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 22991 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 22997 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnArgsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23003 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnArgsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23009 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnArgsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23015 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tblIannotatedTree,_tblIoriginalTree) =-                  tbl_ _tblOcat _tblOflags _tblOimCast _tblOtpe-              ( _fnNameIannotatedTree,_fnNameIoriginalTree) =-                  fnName_ _fnNameOcat _fnNameOflags _fnNameOimCast _fnNameOtpe-              ( _fnArgsIannotatedTree,_fnArgsIoriginalTree,_fnArgsIupTypes) =-                  fnArgs_ _fnArgsOassignmentCastContext _fnArgsOcat _fnArgsOdownEnv _fnArgsOexpectedCast _fnArgsOexpectedTypes _fnArgsOflags _fnArgsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_DropFunction :: T_Annotation ->-                              IfExists ->-                              T_NameTypeNameListPairList ->-                              Cascade ->-                              T_Statement-_sem_Statement_DropFunction ann_ ifE_ sigs_ cascade_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _sigsOcat :: Catalog-              _sigsOflags :: TypeCheckFlags-              _sigsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _sigsIannotatedTree :: NameTypeNameListPairList-              _sigsIoriginalTree :: NameTypeNameListPairList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 172, column 30)-              _annOtpe =-                  ({-# LINE 172 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropFunction _annIannotatedTree ifE_ _sigsIannotatedTree cascade_-                   {-# LINE 23058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropFunction _annIoriginalTree ifE_ _sigsIoriginalTree cascade_-                   {-# LINE 23064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23070 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23076 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23082 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23088 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23094 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _sigsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23100 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _sigsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23106 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _sigsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23112 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _sigsIannotatedTree,_sigsIoriginalTree) =-                  sigs_ _sigsOcat _sigsOflags _sigsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_DropSomething :: T_Annotation ->-                               DropType ->-                               IfExists ->-                               ([Name]) ->-                               Cascade ->-                               T_Statement-_sem_Statement_DropSomething ann_ dropType_ ifE_ names_ cascade_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 23141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropSomething _annIannotatedTree dropType_ ifE_ names_ cascade_-                   {-# LINE 23147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropSomething _annIoriginalTree dropType_ ifE_ names_ cascade_-                   {-# LINE 23153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23171 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_DropTrigger :: T_Annotation ->-                             IfExists ->-                             NameComponent ->-                             T_Name ->-                             Cascade ->-                             T_Statement-_sem_Statement_DropTrigger ann_ ifE_ name_ tbl_ cascade_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _tblOtpe :: (Either [TypeError] TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tblOcat :: Catalog-              _tblOflags :: TypeCheckFlags-              _tblOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tblIannotatedTree :: Name-              _tblIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 173, column 29)-              _tblOtpe =-                  ({-# LINE 173 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23216 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 23222 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropTrigger _annIannotatedTree ifE_ name_ _tblIannotatedTree cascade_-                   {-# LINE 23228 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DropTrigger _annIoriginalTree ifE_ name_ _tblIoriginalTree cascade_-                   {-# LINE 23234 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23240 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23246 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23252 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23258 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23276 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tblIannotatedTree,_tblIoriginalTree) =-                  tbl_ _tblOcat _tblOflags _tblOimCast _tblOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateDatabase :: T_Annotation ->-                                T_Name ->-                                T_Statement-_sem_Statement_CreateDatabase ann_ nm_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _nmOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _nmOcat :: Catalog-              _nmOflags :: TypeCheckFlags-              _nmOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _nmIannotatedTree :: Name-              _nmIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 138, column 32)-              _annOtpe =-                  ({-# LINE 138 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23314 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 139, column 32)-              _nmOtpe =-                  ({-# LINE 139 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23320 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateDatabase _annIannotatedTree _nmIannotatedTree-                   {-# LINE 23326 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateDatabase _annIoriginalTree _nmIoriginalTree-                   {-# LINE 23332 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23338 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23344 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23350 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23356 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23362 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nmOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23368 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nmOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23374 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _nmOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23380 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _nmIannotatedTree,_nmIoriginalTree) =-                  nm_ _nmOcat _nmOflags _nmOimCast _nmOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Set :: T_Annotation ->-                     String ->-                     ([SetValue]) ->-                     T_Statement-_sem_Statement_Set ann_ name_ values_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 218, column 21)-              _annOtpe =-                  ({-# LINE 218 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Set _annIannotatedTree name_ values_-                   {-# LINE 23413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Set _annIoriginalTree name_ values_-                   {-# LINE 23419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Notify :: T_Annotation ->-                        String ->-                        T_Statement-_sem_Statement_Notify ann_ name_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 196, column 24)-              _annOtpe =-                  ({-# LINE 196 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23473 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Notify _annIannotatedTree name_-                   {-# LINE 23479 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Notify _annIoriginalTree name_-                   {-# LINE 23485 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23491 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23497 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23503 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23509 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23515 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Into :: T_Annotation ->-                      Bool ->-                      ([Name]) ->-                      T_Statement ->-                      T_Statement-_sem_Statement_Into ann_ strict_ into_ stmt_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _stmtOcat :: Catalog-              _stmtOflags :: TypeCheckFlags-              _stmtOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _stmtIannotatedTree :: Statement-              _stmtIoriginalTree :: Statement-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 23546 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Into _annIannotatedTree strict_ into_ _stmtIannotatedTree-                   {-# LINE 23552 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Into _annIoriginalTree strict_ into_ _stmtIoriginalTree-                   {-# LINE 23558 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23564 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23570 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23576 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23582 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23588 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stmtOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23594 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stmtOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23600 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stmtOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23606 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _stmtIannotatedTree,_stmtIoriginalTree) =-                  stmt_ _stmtOcat _stmtOflags _stmtOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Assignment :: T_Annotation ->-                            T_Name ->-                            T_ScalarExpr ->-                            T_Statement-_sem_Statement_Assignment ann_ target_ value_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _valueOexpectedCast :: Bool-              _valueOexpectedType :: (Maybe TypeExtra)-              _valueOodbcFunction :: Bool-              _annOtpe :: (Either [TypeError] TypeExtra)-              _targetOtpe :: (Either [TypeError] TypeExtra)-              _valueOdownEnv :: Environment-              _valueOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _targetOcat :: Catalog-              _targetOflags :: TypeCheckFlags-              _targetOimCast :: (Maybe TypeExtra)-              _valueOcat :: Catalog-              _valueOflags :: TypeCheckFlags-              _valueOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _targetIannotatedTree :: Name-              _targetIoriginalTree :: Name-              _valueIannotatedTree :: ScalarExpr-              _valueIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _valueIoriginalTree :: ScalarExpr-              _valueIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 125, column 28)-              _valueOexpectedCast =-                  ({-# LINE 125 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 23651 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 126, column 28)-              _valueOexpectedType =-                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 23657 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 127, column 28)-              _valueOodbcFunction =-                  ({-# LINE 127 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 23663 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 23669 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 26, column 5)-              _targetOtpe =-                  ({-# LINE 26 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 23675 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 27, column 5)-              _valueOdownEnv =-                  ({-# LINE 27 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 23681 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 825, column 28)-              _valueOassignmentCastContext =-                  ({-# LINE 825 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 23687 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Assignment _annIannotatedTree _targetIannotatedTree _valueIannotatedTree-                   {-# LINE 23693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Assignment _annIoriginalTree _targetIoriginalTree _valueIoriginalTree-                   {-# LINE 23699 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23717 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23723 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23729 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _targetOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23735 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _targetOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _targetOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23765 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _targetIannotatedTree,_targetIoriginalTree) =-                  target_ _targetOcat _targetOflags _targetOimCast _targetOtpe-              ( _valueIannotatedTree,_valueIcolExprs,_valueIoriginalTree,_valueIupType) =-                  value_ _valueOassignmentCastContext _valueOcat _valueOdownEnv _valueOexpectedCast _valueOexpectedType _valueOflags _valueOimCast _valueOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Return :: T_Annotation ->-                        T_MaybeScalarExpr ->-                        T_Statement-_sem_Statement_Return ann_ value_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _valueOdownEnv :: Environment-              _valueOexpectedCast :: Bool-              _valueOexpectedType :: (Maybe TypeExtra)-              _valueOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _valueOcat :: Catalog-              _valueOflags :: TypeCheckFlags-              _valueOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _valueIannotatedTree :: MaybeScalarExpr-              _valueIoriginalTree :: MaybeScalarExpr-              _valueIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 207, column 24)-              _annOtpe =-                  ({-# LINE 207 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23803 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 208, column 24)-              _valueOdownEnv =-                  ({-# LINE 208 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 23809 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 209, column 24)-              _valueOexpectedCast =-                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 23815 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 210, column 24)-              _valueOexpectedType =-                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 23821 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 839, column 24)-              _valueOassignmentCastContext =-                  ({-# LINE 839 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 23827 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Return _annIannotatedTree _valueIannotatedTree-                   {-# LINE 23833 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Return _annIoriginalTree _valueIoriginalTree-                   {-# LINE 23839 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23851 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23857 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23863 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23869 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23875 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23881 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valueOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23887 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _valueIannotatedTree,_valueIoriginalTree,_valueIupType) =-                  value_ _valueOassignmentCastContext _valueOcat _valueOdownEnv _valueOexpectedCast _valueOexpectedType _valueOflags _valueOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_ReturnNext :: T_Annotation ->-                            T_ScalarExpr ->-                            T_Statement-_sem_Statement_ReturnNext ann_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOodbcFunction :: Bool-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 211, column 28)-              _annOtpe =-                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 23925 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 212, column 28)-              _exprOdownEnv =-                  ({-# LINE 212 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 23931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 213, column 28)-              _exprOexpectedCast =-                  ({-# LINE 213 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 23937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 214, column 28)-              _exprOexpectedType =-                  ({-# LINE 214 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 23943 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 215, column 28)-              _exprOodbcFunction =-                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 23949 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 840, column 28)-              _exprOassignmentCastContext =-                  ({-# LINE 840 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 23955 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ReturnNext _annIannotatedTree _exprIannotatedTree-                   {-# LINE 23961 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ReturnNext _annIoriginalTree _exprIoriginalTree-                   {-# LINE 23967 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 23973 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 23979 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 23985 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 23991 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 23997 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24003 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24009 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24015 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_ReturnQuery :: T_Annotation ->-                             T_QueryExpr ->-                             T_Statement-_sem_Statement_ReturnQuery ann_ sel_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _selOouterDownEnv :: (Maybe Environment)-              _selOexpectedType :: (Maybe [TypeExtra])-              _selOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _selOcat :: Catalog-              _selOflags :: TypeCheckFlags-              _selOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _selIannotatedTree :: QueryExpr-              _selIoriginalTree :: QueryExpr-              _selIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 216, column 29)-              _annOtpe =-                  ({-# LINE 216 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24050 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 217, column 29)-              _selOouterDownEnv =-                  ({-# LINE 217 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 24056 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 22, column 5)-              _selOexpectedType =-                  ({-# LINE 22 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   liftM (map snd) _selIupType-                   {-# LINE 24062 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 841, column 29)-              _selOassignmentCastContext =-                  ({-# LINE 841 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 24068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ReturnQuery _annIannotatedTree _selIannotatedTree-                   {-# LINE 24074 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ReturnQuery _annIoriginalTree _selIoriginalTree-                   {-# LINE 24080 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24092 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24098 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24104 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24110 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24116 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24122 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24128 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =-                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Raise :: T_Annotation ->-                       RaiseType ->-                       String ->-                       T_ScalarExprList ->-                       T_Statement-_sem_Statement_Raise ann_ level_ message_ args_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _argsOdownEnv :: Environment-              _argsOexpectedCast :: Bool-              _argsOexpectedTypes :: ([TypeExtra])-              _argsOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _argsOcat :: Catalog-              _argsOflags :: TypeCheckFlags-              _argsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _argsIannotatedTree :: ScalarExprList-              _argsIoriginalTree :: ScalarExprList-              _argsIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 203, column 23)-              _annOtpe =-                  ({-# LINE 203 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24166 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 204, column 23)-              _argsOdownEnv =-                  ({-# LINE 204 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 24172 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 205, column 23)-              _argsOexpectedCast =-                  ({-# LINE 205 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24178 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 206, column 23)-              _argsOexpectedTypes =-                  ({-# LINE 206 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   []-                   {-# LINE 24184 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 838, column 23)-              _argsOassignmentCastContext =-                  ({-# LINE 838 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 24190 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Raise _annIannotatedTree level_ message_ _argsIannotatedTree-                   {-# LINE 24196 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Raise _annIoriginalTree level_ message_ _argsIoriginalTree-                   {-# LINE 24202 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24208 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24214 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24220 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24226 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24232 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24238 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24244 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24250 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =-                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_NullStatement :: T_Annotation ->-                               T_Statement-_sem_Statement_NullStatement ann_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 197, column 31)-              _annOtpe =-                  ({-# LINE 197 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NullStatement _annIannotatedTree-                   {-# LINE 24281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   NullStatement _annIoriginalTree-                   {-# LINE 24287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24293 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24299 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24317 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Perform :: T_Annotation ->-                         T_ScalarExpr ->-                         T_Statement-_sem_Statement_Perform ann_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOodbcFunction :: Bool-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 198, column 25)-              _annOtpe =-                  ({-# LINE 198 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 199, column 25)-              _exprOdownEnv =-                  ({-# LINE 199 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 24359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 200, column 25)-              _exprOexpectedCast =-                  ({-# LINE 200 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 201, column 25)-              _exprOexpectedType =-                  ({-# LINE 201 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 24371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 202, column 25)-              _exprOodbcFunction =-                  ({-# LINE 202 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 836, column 25)-              _exprOassignmentCastContext =-                  ({-# LINE 836 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 24383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Perform _annIannotatedTree _exprIannotatedTree-                   {-# LINE 24389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Perform _annIoriginalTree _exprIoriginalTree-                   {-# LINE 24395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Execute :: T_Annotation ->-                         T_ScalarExpr ->-                         T_Statement-_sem_Statement_Execute ann_ expr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOodbcFunction :: Bool-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 178, column 25)-              _annOtpe =-                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24481 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 179, column 25)-              _exprOdownEnv =-                  ({-# LINE 179 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 24487 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 180, column 25)-              _exprOexpectedCast =-                  ({-# LINE 180 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24493 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 181, column 25)-              _exprOexpectedType =-                  ({-# LINE 181 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 24499 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 182, column 25)-              _exprOodbcFunction =-                  ({-# LINE 182 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24505 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 831, column 25)-              _exprOassignmentCastContext =-                  ({-# LINE 831 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 24511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Execute _annIannotatedTree _exprIannotatedTree-                   {-# LINE 24517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Execute _annIoriginalTree _exprIoriginalTree-                   {-# LINE 24523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_ForQueryStatement :: T_Annotation ->-                                   (Maybe String) ->-                                   NameComponent ->-                                   T_QueryExpr ->-                                   T_StatementList ->-                                   T_Statement-_sem_Statement_ForQueryStatement ann_ lb_ var_ sel_ sts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _selOouterDownEnv :: (Maybe Environment)-              _selOexpectedType :: (Maybe [TypeExtra])-              _selOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _selOcat :: Catalog-              _selOflags :: TypeCheckFlags-              _selOimCast :: (Maybe TypeExtra)-              _stsOcat :: Catalog-              _stsOflags :: TypeCheckFlags-              _stsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _selIannotatedTree :: QueryExpr-              _selIoriginalTree :: QueryExpr-              _selIupType :: (Maybe [(Text,TypeExtra)])-              _stsIannotatedTree :: StatementList-              _stsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 193, column 35)-              _annOtpe =-                  ({-# LINE 193 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24614 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 194, column 35)-              _selOouterDownEnv =-                  ({-# LINE 194 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 24620 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 22, column 5)-              _selOexpectedType =-                  ({-# LINE 22 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   liftM (map snd) _selIupType-                   {-# LINE 24626 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 834, column 35)-              _selOassignmentCastContext =-                  ({-# LINE 834 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 24632 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ForQueryStatement _annIannotatedTree lb_ var_ _selIannotatedTree _stsIannotatedTree-                   {-# LINE 24638 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ForQueryStatement _annIoriginalTree lb_ var_ _selIoriginalTree _stsIoriginalTree-                   {-# LINE 24644 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24650 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24656 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24662 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24668 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24674 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24680 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24686 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24692 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24698 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24704 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24710 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =-                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv-              ( _stsIannotatedTree,_stsIoriginalTree) =-                  sts_ _stsOcat _stsOflags _stsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_ForIntegerStatement :: T_Annotation ->-                                     (Maybe String) ->-                                     NameComponent ->-                                     T_ScalarExpr ->-                                     T_ScalarExpr ->-                                     T_StatementList ->-                                     T_Statement-_sem_Statement_ForIntegerStatement ann_ lb_ var_ from_ to_ sts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _fromOdownEnv :: Environment-              _fromOexpectedCast :: Bool-              _fromOexpectedType :: (Maybe TypeExtra)-              _fromOodbcFunction :: Bool-              _toOdownEnv :: Environment-              _toOexpectedCast :: Bool-              _toOexpectedType :: (Maybe TypeExtra)-              _toOodbcFunction :: Bool-              _fromOassignmentCastContext :: Bool-              _toOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _fromOcat :: Catalog-              _fromOflags :: TypeCheckFlags-              _fromOimCast :: (Maybe TypeExtra)-              _toOcat :: Catalog-              _toOflags :: TypeCheckFlags-              _toOimCast :: (Maybe TypeExtra)-              _stsOcat :: Catalog-              _stsOflags :: TypeCheckFlags-              _stsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _fromIannotatedTree :: ScalarExpr-              _fromIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _fromIoriginalTree :: ScalarExpr-              _fromIupType :: (Maybe TypeExtra)-              _toIannotatedTree :: ScalarExpr-              _toIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _toIoriginalTree :: ScalarExpr-              _toIupType :: (Maybe TypeExtra)-              _stsIannotatedTree :: StatementList-              _stsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 184, column 37)-              _annOtpe =-                  ({-# LINE 184 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24771 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 185, column 37)-              _fromOdownEnv =-                  ({-# LINE 185 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 24777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 186, column 37)-              _fromOexpectedCast =-                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 187, column 37)-              _fromOexpectedType =-                  ({-# LINE 187 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 24789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 188, column 37)-              _fromOodbcFunction =-                  ({-# LINE 188 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 189, column 37)-              _toOdownEnv =-                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 24801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 190, column 37)-              _toOexpectedCast =-                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 191, column 37)-              _toOexpectedType =-                  ({-# LINE 191 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 24813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 192, column 37)-              _toOodbcFunction =-                  ({-# LINE 192 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 24819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 832, column 37)-              _fromOassignmentCastContext =-                  ({-# LINE 832 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 24825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 833, column 37)-              _toOassignmentCastContext =-                  ({-# LINE 833 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 24831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ForIntegerStatement _annIannotatedTree lb_ var_ _fromIannotatedTree _toIannotatedTree _stsIannotatedTree-                   {-# LINE 24837 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ForIntegerStatement _annIoriginalTree lb_ var_ _fromIoriginalTree _toIoriginalTree _stsIoriginalTree-                   {-# LINE 24843 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fromOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fromOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fromOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _toOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _toOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24903 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _toOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24909 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24915 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24921 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 24927 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _fromIannotatedTree,_fromIcolExprs,_fromIoriginalTree,_fromIupType) =-                  from_ _fromOassignmentCastContext _fromOcat _fromOdownEnv _fromOexpectedCast _fromOexpectedType _fromOflags _fromOimCast _fromOodbcFunction-              ( _toIannotatedTree,_toIcolExprs,_toIoriginalTree,_toIupType) =-                  to_ _toOassignmentCastContext _toOcat _toOdownEnv _toOexpectedCast _toOexpectedType _toOflags _toOimCast _toOodbcFunction-              ( _stsIannotatedTree,_stsIoriginalTree) =-                  sts_ _stsOcat _stsOflags _stsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_LoopStatement :: T_Annotation ->-                               (Maybe String) ->-                               T_StatementList ->-                               T_Statement-_sem_Statement_LoopStatement ann_ lb_ sts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _stsOcat :: Catalog-              _stsOflags :: TypeCheckFlags-              _stsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _stsIannotatedTree :: StatementList-              _stsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 195, column 31)-              _annOtpe =-                  ({-# LINE 195 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 24963 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   LoopStatement _annIannotatedTree lb_ _stsIannotatedTree-                   {-# LINE 24969 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   LoopStatement _annIoriginalTree lb_ _stsIoriginalTree-                   {-# LINE 24975 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 24981 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 24987 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 24993 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 24999 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25005 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25011 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25017 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25023 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _stsIannotatedTree,_stsIoriginalTree) =-                  sts_ _stsOcat _stsOflags _stsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_WhileStatement :: T_Annotation ->-                                (Maybe String) ->-                                T_ScalarExpr ->-                                T_StatementList ->-                                T_Statement-_sem_Statement_WhileStatement ann_ lb_ expr_ sts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _exprOdownEnv :: Environment-              _exprOexpectedCast :: Bool-              _exprOexpectedType :: (Maybe TypeExtra)-              _exprOodbcFunction :: Bool-              _exprOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exprOcat :: Catalog-              _exprOflags :: TypeCheckFlags-              _exprOimCast :: (Maybe TypeExtra)-              _stsOcat :: Catalog-              _stsOflags :: TypeCheckFlags-              _stsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exprIannotatedTree :: ScalarExpr-              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _exprIoriginalTree :: ScalarExpr-              _exprIupType :: (Maybe TypeExtra)-              _stsIannotatedTree :: StatementList-              _stsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 221, column 32)-              _annOtpe =-                  ({-# LINE 221 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 25068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 222, column 32)-              _exprOdownEnv =-                  ({-# LINE 222 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 25074 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 223, column 32)-              _exprOexpectedCast =-                  ({-# LINE 223 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 25080 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 224, column 32)-              _exprOexpectedType =-                  ({-# LINE 224 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 25086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 225, column 32)-              _exprOodbcFunction =-                  ({-# LINE 225 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 25092 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 842, column 32)-              _exprOassignmentCastContext =-                  ({-# LINE 842 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 25098 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WhileStatement _annIannotatedTree lb_ _exprIannotatedTree _stsIannotatedTree-                   {-# LINE 25104 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WhileStatement _annIoriginalTree lb_ _exprIoriginalTree _stsIoriginalTree-                   {-# LINE 25110 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25116 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25122 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25128 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25134 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25140 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25146 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25152 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25158 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25164 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25170 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25176 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =-                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction-              ( _stsIannotatedTree,_stsIoriginalTree) =-                  sts_ _stsOcat _stsOflags _stsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_ContinueStatement :: T_Annotation ->-                                   (Maybe String) ->-                                   T_Statement-_sem_Statement_ContinueStatement ann_ lb_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 135, column 35)-              _annOtpe =-                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 25204 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ContinueStatement _annIannotatedTree lb_-                   {-# LINE 25210 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ContinueStatement _annIoriginalTree lb_-                   {-# LINE 25216 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25222 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25228 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25234 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25240 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25246 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_ExitStatement :: T_Annotation ->-                               (Maybe String) ->-                               T_Statement-_sem_Statement_ExitStatement ann_ lb_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 183, column 31)-              _annOtpe =-                  ({-# LINE 183 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 25270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ExitStatement _annIannotatedTree lb_-                   {-# LINE 25276 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ExitStatement _annIoriginalTree lb_-                   {-# LINE 25282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25288 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25294 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25300 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25306 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25312 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CaseStatementSimple :: T_Annotation ->-                                     T_ScalarExpr ->-                                     T_ScalarExprListStatementListTripleList ->-                                     T_StatementList ->-                                     T_Statement-_sem_Statement_CaseStatementSimple ann_ val_ cases_ els_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _valOdownEnv :: Environment-              _valOexpectedCast :: Bool-              _valOexpectedType :: (Maybe TypeExtra)-              _valOodbcFunction :: Bool-              _valOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _valOcat :: Catalog-              _valOflags :: TypeCheckFlags-              _valOimCast :: (Maybe TypeExtra)-              _casesOcat :: Catalog-              _casesOflags :: TypeCheckFlags-              _casesOimCast :: (Maybe TypeExtra)-              _elsOcat :: Catalog-              _elsOflags :: TypeCheckFlags-              _elsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _valIannotatedTree :: ScalarExpr-              _valIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _valIoriginalTree :: ScalarExpr-              _valIupType :: (Maybe TypeExtra)-              _casesIannotatedTree :: ScalarExprListStatementListTripleList-              _casesIoriginalTree :: ScalarExprListStatementListTripleList-              _elsIannotatedTree :: StatementList-              _elsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 130, column 37)-              _annOtpe =-                  ({-# LINE 130 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 25360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 131, column 37)-              _valOdownEnv =-                  ({-# LINE 131 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 25366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 132, column 37)-              _valOexpectedCast =-                  ({-# LINE 132 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 25372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 133, column 37)-              _valOexpectedType =-                  ({-# LINE 133 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 25378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 134, column 37)-              _valOodbcFunction =-                  ({-# LINE 134 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 25384 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 826, column 37)-              _valOassignmentCastContext =-                  ({-# LINE 826 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 25390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CaseStatementSimple _annIannotatedTree _valIannotatedTree _casesIannotatedTree _elsIannotatedTree-                   {-# LINE 25396 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CaseStatementSimple _annIoriginalTree _valIoriginalTree _casesIoriginalTree _elsIoriginalTree-                   {-# LINE 25402 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25408 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25414 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25420 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25426 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25432 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25438 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25444 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _valOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25450 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25456 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25462 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25468 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25474 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25480 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25486 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _valIannotatedTree,_valIcolExprs,_valIoriginalTree,_valIupType) =-                  val_ _valOassignmentCastContext _valOcat _valOdownEnv _valOexpectedCast _valOexpectedType _valOflags _valOimCast _valOodbcFunction-              ( _casesIannotatedTree,_casesIoriginalTree) =-                  cases_ _casesOcat _casesOflags _casesOimCast-              ( _elsIannotatedTree,_elsIoriginalTree) =-                  els_ _elsOcat _elsOflags _elsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CaseStatement :: T_Annotation ->-                               T_ScalarExprListStatementListTripleList ->-                               T_StatementList ->-                               T_Statement-_sem_Statement_CaseStatement ann_ cases_ els_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _casesOcat :: Catalog-              _casesOflags :: TypeCheckFlags-              _casesOimCast :: (Maybe TypeExtra)-              _elsOcat :: Catalog-              _elsOflags :: TypeCheckFlags-              _elsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _casesIannotatedTree :: ScalarExprListStatementListTripleList-              _casesIoriginalTree :: ScalarExprListStatementListTripleList-              _elsIannotatedTree :: StatementList-              _elsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 129, column 31)-              _annOtpe =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 25527 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CaseStatement _annIannotatedTree _casesIannotatedTree _elsIannotatedTree-                   {-# LINE 25533 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CaseStatement _annIoriginalTree _casesIoriginalTree _elsIoriginalTree-                   {-# LINE 25539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25545 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25551 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25563 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25569 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25575 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25581 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25587 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25593 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25599 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25605 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _casesIannotatedTree,_casesIoriginalTree) =-                  cases_ _casesOcat _casesOflags _casesOimCast-              ( _elsIannotatedTree,_elsIoriginalTree) =-                  els_ _elsOcat _elsOflags _elsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_If :: T_Annotation ->-                    T_ScalarExprStatementListPairList ->-                    T_StatementList ->-                    T_Statement-_sem_Statement_If ann_ cases_ els_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _casesOcat :: Catalog-              _casesOflags :: TypeCheckFlags-              _casesOimCast :: (Maybe TypeExtra)-              _elsOcat :: Catalog-              _elsOflags :: TypeCheckFlags-              _elsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _casesIannotatedTree :: ScalarExprStatementListPairList-              _casesIoriginalTree :: ScalarExprStatementListPairList-              _elsIannotatedTree :: StatementList-              _elsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 25644 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   If _annIannotatedTree _casesIannotatedTree _elsIannotatedTree-                   {-# LINE 25650 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   If _annIoriginalTree _casesIoriginalTree _elsIoriginalTree-                   {-# LINE 25656 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25662 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25668 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25674 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25680 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25686 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25692 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25698 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _casesOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25704 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25710 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25716 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _elsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25722 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _casesIannotatedTree,_casesIoriginalTree) =-                  cases_ _casesOcat _casesOflags _casesOimCast-              ( _elsIannotatedTree,_elsIoriginalTree) =-                  els_ _elsOcat _elsOflags _elsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_Block :: T_Annotation ->-                       (Maybe String) ->-                       T_VarDefList ->-                       T_StatementList ->-                       T_Statement-_sem_Statement_Block ann_ lb_ vars_ sts_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _varsOcat :: Catalog-              _varsOflags :: TypeCheckFlags-              _varsOimCast :: (Maybe TypeExtra)-              _stsOcat :: Catalog-              _stsOflags :: TypeCheckFlags-              _stsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _varsIannotatedTree :: VarDefList-              _varsIoriginalTree :: VarDefList-              _stsIannotatedTree :: StatementList-              _stsIoriginalTree :: StatementList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 128, column 23)-              _annOtpe =-                  ({-# LINE 128 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 25762 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Block _annIannotatedTree lb_ _varsIannotatedTree _stsIannotatedTree-                   {-# LINE 25768 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Block _annIoriginalTree lb_ _varsIoriginalTree _stsIoriginalTree-                   {-# LINE 25774 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25780 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25786 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25792 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25798 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25804 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _varsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25810 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _varsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25816 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _varsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25822 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25828 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25834 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _stsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25840 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _varsIannotatedTree,_varsIoriginalTree) =-                  vars_ _varsOcat _varsOflags _varsOimCast-              ( _stsIannotatedTree,_stsIoriginalTree) =-                  sts_ _stsOcat _stsOflags _stsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_AntiStatement :: String ->-                               T_Statement-_sem_Statement_AntiStatement string_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AntiStatement string_-                   {-# LINE 25861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   AntiStatement string_-                   {-# LINE 25867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_DeclareStatement :: T_Annotation ->-                                  ([(String,TypeName,Maybe ScalarExpr)]) ->-                                  T_Statement-_sem_Statement_DeclareStatement ann_ ds_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 25901 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DeclareStatement _annIannotatedTree ds_-                   {-# LINE 25907 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   DeclareStatement _annIoriginalTree ds_-                   {-# LINE 25913 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 25919 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 25925 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 25931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 25937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 25943 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_ExecStatement :: T_Annotation ->-                               T_Name ->-                               T_ScalarExprList ->-                               T_Statement-_sem_Statement_ExecStatement ann_ spName_ args_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _argsOdownEnv :: Environment-              _argsOexpectedCast :: Bool-              _argsOexpectedTypes :: ([TypeExtra])-              _spNameOtpe :: (Either [TypeError] TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _argsOassignmentCastContext :: Bool-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _spNameOcat :: Catalog-              _spNameOflags :: TypeCheckFlags-              _spNameOimCast :: (Maybe TypeExtra)-              _argsOcat :: Catalog-              _argsOflags :: TypeCheckFlags-              _argsOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _spNameIannotatedTree :: Name-              _spNameIoriginalTree :: Name-              _argsIannotatedTree :: ScalarExprList-              _argsIoriginalTree :: ScalarExprList-              _argsIupTypes :: ([Maybe TypeExtra])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 174, column 31)-              _argsOdownEnv =-                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 25984 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 175, column 31)-              _argsOexpectedCast =-                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 25990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 176, column 31)-              _argsOexpectedTypes =-                  ({-# LINE 176 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   []-                   {-# LINE 25996 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 177, column 31)-              _spNameOtpe =-                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 26002 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 26008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 830, column 31)-              _argsOassignmentCastContext =-                  ({-# LINE 830 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 26014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ExecStatement _annIannotatedTree _spNameIannotatedTree _argsIannotatedTree-                   {-# LINE 26020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ExecStatement _annIoriginalTree _spNameIoriginalTree _argsIoriginalTree-                   {-# LINE 26026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 26032 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26038 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26044 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26050 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26056 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _spNameOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26062 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _spNameOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _spNameOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26074 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26080 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _argsOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26092 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _spNameIannotatedTree,_spNameIoriginalTree) =-                  spName_ _spNameOcat _spNameOflags _spNameOimCast _spNameOtpe-              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =-                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_Statement_CreateIndexTSQL :: T_Annotation ->-                                 NameComponent ->-                                 T_Name ->-                                 ([NameComponent]) ->-                                 T_Statement-_sem_Statement_CreateIndexTSQL ann_ nm_ obj_ cols_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _objOtpe :: (Either [TypeError] TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: Statement-              _lhsOoriginalTree :: Statement-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _objOcat :: Catalog-              _objOflags :: TypeCheckFlags-              _objOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _objIannotatedTree :: Name-              _objIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 145, column 33)-              _objOtpe =-                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 26128 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)-              _annOtpe =-                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}-                   Left []-                   {-# LINE 26134 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateIndexTSQL _annIannotatedTree nm_ _objIannotatedTree cols_-                   {-# LINE 26140 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   CreateIndexTSQL _annIoriginalTree nm_ _objIoriginalTree cols_-                   {-# LINE 26146 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 26152 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26158 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26164 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26170 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26176 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _objOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26182 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _objOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26188 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _objOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26194 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _objIannotatedTree,_objIoriginalTree) =-                  obj_ _objOcat _objOflags _objOimCast _objOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- StatementList ------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : StatementList -         originalTree         : StatementList -   alternatives:-      alternative Cons:-         child hd             : Statement -         child tl             : StatementList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type StatementList = [Statement]--- cata-_sem_StatementList :: StatementList ->-                     T_StatementList-_sem_StatementList list =-    (Prelude.foldr _sem_StatementList_Cons _sem_StatementList_Nil (Prelude.map _sem_Statement list))--- semantic domain-type T_StatementList = Catalog ->-                       TypeCheckFlags ->-                       (Maybe TypeExtra) ->-                       ( StatementList,StatementList)-data Inh_StatementList = Inh_StatementList {_cat_Inh_StatementList :: Catalog,_flags_Inh_StatementList :: TypeCheckFlags,_imCast_Inh_StatementList :: (Maybe TypeExtra)}-data Syn_StatementList = Syn_StatementList {_annotatedTree_Syn_StatementList :: StatementList,_originalTree_Syn_StatementList :: StatementList}-_wrap_StatementList :: T_StatementList ->-                      Inh_StatementList ->-                      Syn_StatementList-_wrap_StatementList sem (Inh_StatementList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_StatementList _lhsOannotatedTree _lhsOoriginalTree))-_sem_StatementList_Cons :: T_Statement ->-                          T_StatementList ->-                          T_StatementList-_sem_StatementList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: StatementList-              _lhsOoriginalTree :: StatementList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: Statement-              _hdIoriginalTree :: Statement-              _tlIannotatedTree :: StatementList-              _tlIoriginalTree :: StatementList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 26265 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 26271 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 26277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26313 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26319 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_StatementList_Nil :: T_StatementList-_sem_StatementList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: StatementList-              _lhsOoriginalTree :: StatementList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 26337 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 26343 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 26349 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26355 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- TablePartitionDef --------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : TablePartitionDef -         originalTree         : TablePartitionDef -   alternatives:-      alternative TablePartitionDef:-         child ann            : Annotation -         child colname        : {NameComponent}-         child interval       : {Integer}-         child timeframe      : {TablePartitionDateTimeInterval}-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data TablePartitionDef = TablePartitionDef (Annotation) (NameComponent) (Integer) (TablePartitionDateTimeInterval)-                       deriving ( Data,Eq,Show,Typeable)--- cata-_sem_TablePartitionDef :: TablePartitionDef ->-                         T_TablePartitionDef-_sem_TablePartitionDef (TablePartitionDef _ann _colname _interval _timeframe) =-    (_sem_TablePartitionDef_TablePartitionDef (_sem_Annotation _ann) _colname _interval _timeframe)--- semantic domain-type T_TablePartitionDef = Catalog ->-                           TypeCheckFlags ->-                           (Maybe TypeExtra) ->-                           ( TablePartitionDef,TablePartitionDef)-data Inh_TablePartitionDef = Inh_TablePartitionDef {_cat_Inh_TablePartitionDef :: Catalog,_flags_Inh_TablePartitionDef :: TypeCheckFlags,_imCast_Inh_TablePartitionDef :: (Maybe TypeExtra)}-data Syn_TablePartitionDef = Syn_TablePartitionDef {_annotatedTree_Syn_TablePartitionDef :: TablePartitionDef,_originalTree_Syn_TablePartitionDef :: TablePartitionDef}-_wrap_TablePartitionDef :: T_TablePartitionDef ->-                          Inh_TablePartitionDef ->-                          Syn_TablePartitionDef-_wrap_TablePartitionDef sem (Inh_TablePartitionDef _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_TablePartitionDef _lhsOannotatedTree _lhsOoriginalTree))-_sem_TablePartitionDef_TablePartitionDef :: T_Annotation ->-                                           NameComponent ->-                                           Integer ->-                                           TablePartitionDateTimeInterval ->-                                           T_TablePartitionDef-_sem_TablePartitionDef_TablePartitionDef ann_ colname_ interval_ timeframe_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TablePartitionDef-              _lhsOoriginalTree :: TablePartitionDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 226, column 43)-              _annOtpe =-                  ({-# LINE 226 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 26419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TablePartitionDef _annIannotatedTree colname_ interval_ timeframe_-                   {-# LINE 26425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TablePartitionDef _annIoriginalTree colname_ interval_ timeframe_-                   {-# LINE 26431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 26437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26455 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26461 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- TableRef -----------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : TableRef -         originalTree         : TableRef -         upEnv                : Environment-   alternatives:-      alternative Tref:-         child ann            : Annotation -         child tbl            : Name -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local newAlias    : _-            local annotatedTree : _-            local originalTree : _-      alternative FunTref:-         child ann            : Annotation -         child fn             : ScalarExpr -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local newAlias    : _-            local annotatedTree : _-            local originalTree : _-      alternative SubTref:-         child ann            : Annotation -         child sel            : QueryExpr -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local newAlias    : _-            local annotatedTree : _-            local originalTree : _-      alternative JoinTref:-         child ann            : Annotation -         child tref0          : TableRef -         child nat            : {Natural}-         child joinType       : {JoinType}-         child joinHint       : {Maybe JoinHint}-         child tref1          : TableRef -         child onExpr         : OnExpr -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local newAlias    : _-            local annotatedTree : _-            local originalTree : _-      alternative TableAlias:-         child ann            : Annotation -         child tb             : {NameComponent}-         child tref           : TableRef -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local annotatedTree : _-            local originalTree : _-      alternative FullAlias:-         child ann            : Annotation -         child tb             : {NameComponent}-         child cols           : {[NameComponent]}-         child tref           : TableRef -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local annotatedTree : _-            local originalTree : _-      alternative TableRefParens:-         child ann            : Annotation -         child tref           : TableRef -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local newAlias    : _-            local annotatedTree : _-            local originalTree : _-      alternative OdbcTableRef:-         child ann            : Annotation -         child tref           : TableRef -         visit 0:-            local eEnv        : {Either [TypeError] Environment}-            local newAlias    : _-            local annotatedTree : _-            local originalTree : _--}-data TableRef = Tref (Annotation) (Name)-              | FunTref (Annotation) (ScalarExpr)-              | SubTref (Annotation) (QueryExpr)-              | JoinTref (Annotation) (TableRef) (Natural) (JoinType) ((Maybe JoinHint)) (TableRef) (OnExpr)-              | TableAlias (Annotation) (NameComponent) (TableRef)-              | FullAlias (Annotation) (NameComponent) (([NameComponent])) (TableRef)-              | TableRefParens (Annotation) (TableRef)-              | OdbcTableRef (Annotation) (TableRef)-              deriving ( Data,Eq,Show,Typeable)--- cata-_sem_TableRef :: TableRef ->-                T_TableRef-_sem_TableRef (Tref _ann _tbl) =-    (_sem_TableRef_Tref (_sem_Annotation _ann) (_sem_Name _tbl))-_sem_TableRef (FunTref _ann _fn) =-    (_sem_TableRef_FunTref (_sem_Annotation _ann) (_sem_ScalarExpr _fn))-_sem_TableRef (SubTref _ann _sel) =-    (_sem_TableRef_SubTref (_sem_Annotation _ann) (_sem_QueryExpr _sel))-_sem_TableRef (JoinTref _ann _tref0 _nat _joinType _joinHint _tref1 _onExpr) =-    (_sem_TableRef_JoinTref (_sem_Annotation _ann) (_sem_TableRef _tref0) _nat _joinType _joinHint (_sem_TableRef _tref1) (_sem_OnExpr _onExpr))-_sem_TableRef (TableAlias _ann _tb _tref) =-    (_sem_TableRef_TableAlias (_sem_Annotation _ann) _tb (_sem_TableRef _tref))-_sem_TableRef (FullAlias _ann _tb _cols _tref) =-    (_sem_TableRef_FullAlias (_sem_Annotation _ann) _tb _cols (_sem_TableRef _tref))-_sem_TableRef (TableRefParens _ann _tref) =-    (_sem_TableRef_TableRefParens (_sem_Annotation _ann) (_sem_TableRef _tref))-_sem_TableRef (OdbcTableRef _ann _tref) =-    (_sem_TableRef_OdbcTableRef (_sem_Annotation _ann) (_sem_TableRef _tref))--- semantic domain-type T_TableRef = Catalog ->-                  TypeCheckFlags ->-                  (Maybe TypeExtra) ->-                  ( TableRef,TableRef,Environment)-data Inh_TableRef = Inh_TableRef {_cat_Inh_TableRef :: Catalog,_flags_Inh_TableRef :: TypeCheckFlags,_imCast_Inh_TableRef :: (Maybe TypeExtra)}-data Syn_TableRef = Syn_TableRef {_annotatedTree_Syn_TableRef :: TableRef,_originalTree_Syn_TableRef :: TableRef,_upEnv_Syn_TableRef :: Environment}-_wrap_TableRef :: T_TableRef ->-                 Inh_TableRef ->-                 Syn_TableRef-_wrap_TableRef sem (Inh_TableRef _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_TableRef _lhsOannotatedTree _lhsOoriginalTree _lhsOupEnv))-_sem_TableRef_Tref :: T_Annotation ->-                     T_Name ->-                     T_TableRef-_sem_TableRef_Tref ann_ tbl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _tblOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TableRef-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tblOcat :: Catalog-              _tblOflags :: TypeCheckFlags-              _tblOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tblIannotatedTree :: Name-              _tblIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 26618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 26624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 42, column 7)-              _eEnv =-                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   E.envCreateTrefEnvironment _lhsIcat (nameComponents _tblIoriginalTree)-                   {-# LINE 26630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 43, column 7)-              _tblOtpe =-                  ({-# LINE 43 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   Left []-                   {-# LINE 26636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   let mk (q,is) = FullAlias emptyAnnotation-                                            (Nmc q)-                                            (map Nmc is)-                                            $ wrapIfJoin _annotatedTree-                       wrapIfJoin tr = case tr of-                                          JoinTref {} -> TableRefParens emptyAnnotation tr-                                          _ -> tr-                   in maybe _annotatedTree     mk _newAlias-                   {-# LINE 26649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 150, column 7)-              _newAlias =-                  ({-# LINE 150 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   if tcfAddFullTablerefAliases _lhsIflags-                   then do-                     ((_,n),cs,_) <- either (const Nothing) Just-                                   $ catLookupTableAndAttrs _lhsIcat-                                   (nameComponents _tblIoriginalTree)-                     return (T.unpack n, (map (T.unpack . fst) cs))-                   else Nothing-                   {-# LINE 26661 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Tref _annIannotatedTree _tblIannotatedTree-                   {-# LINE 26667 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Tref _annIoriginalTree _tblIoriginalTree-                   {-# LINE 26673 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26679 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26685 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26691 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26697 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26703 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26709 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tblOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26715 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tblIannotatedTree,_tblIoriginalTree) =-                  tbl_ _tblOcat _tblOflags _tblOimCast _tblOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRef_FunTref :: T_Annotation ->-                        T_ScalarExpr ->-                        T_TableRef-_sem_TableRef_FunTref ann_ fn_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _fnOdownEnv :: Environment-              _fnOexpectedCast :: Bool-              _fnOexpectedType :: (Maybe TypeExtra)-              _fnOodbcFunction :: Bool-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _lhsOannotatedTree :: TableRef-              _fnOassignmentCastContext :: Bool-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _fnOcat :: Catalog-              _fnOflags :: TypeCheckFlags-              _fnOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _fnIannotatedTree :: ScalarExpr-              _fnIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])-              _fnIoriginalTree :: ScalarExpr-              _fnIupType :: (Maybe TypeExtra)-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 227, column 24)-              _fnOdownEnv =-                  ({-# LINE 227 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 26755 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 228, column 24)-              _fnOexpectedCast =-                  ({-# LINE 228 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 26761 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 229, column 24)-              _fnOexpectedType =-                  ({-# LINE 229 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Nothing-                   {-# LINE 26767 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 230, column 24)-              _fnOodbcFunction =-                  ({-# LINE 230 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   False-                   {-# LINE 26773 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 26780 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 26786 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 71, column 7)-              _eEnv =-                  ({-# LINE 71 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   Left []-                   {-# LINE 26792 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   let mk (q,is) = FullAlias emptyAnnotation-                                            (Nmc q)-                                            (map Nmc is)-                                            $ wrapIfJoin _annotatedTree-                       wrapIfJoin tr = case tr of-                                          JoinTref {} -> TableRefParens emptyAnnotation tr-                                          _ -> tr-                   in maybe _annotatedTree     mk _newAlias-                   {-# LINE 26805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)-              _newAlias =-                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   if tcfAddFullTablerefAliases _lhsIflags-                   then do-                     env <- either (const Nothing) Just _eEnv-                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env-                     let qs = map (fst . fst) cs-                     if all (== head qs) qs-                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)-                       else-                                                            Nothing-                   else Nothing-                   {-# LINE 26820 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 843, column 24)-              _fnOassignmentCastContext =-                  ({-# LINE 843 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 26826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   FunTref _annIannotatedTree _fnIannotatedTree-                   {-# LINE 26832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   FunTref _annIoriginalTree _fnIoriginalTree-                   {-# LINE 26838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26844 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26850 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26856 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26862 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 26868 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 26874 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _fnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 26880 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _fnIannotatedTree,_fnIcolExprs,_fnIoriginalTree,_fnIupType) =-                  fn_ _fnOassignmentCastContext _fnOcat _fnOdownEnv _fnOexpectedCast _fnOexpectedType _fnOflags _fnOimCast _fnOodbcFunction-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRef_SubTref :: T_Annotation ->-                        T_QueryExpr ->-                        T_TableRef-_sem_TableRef_SubTref ann_ sel_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _selOexpectedType :: (Maybe [TypeExtra])-              _lhsOannotatedTree :: TableRef-              _selOouterDownEnv :: (Maybe Environment)-              _selOassignmentCastContext :: Bool-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _selOcat :: Catalog-              _selOflags :: TypeCheckFlags-              _selOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _selIannotatedTree :: QueryExpr-              _selIoriginalTree :: QueryExpr-              _selIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 26918 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 26924 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 58, column 7)-              _eEnv =-                  ({-# LINE 58 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   maybe (Left []) id-                   $ fmap E.envSelectListEnvironment _selIupType-                   {-# LINE 26931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 60, column 7)-              _selOexpectedType =-                  ({-# LINE 60 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   liftM (map snd) _selIupType-                   {-# LINE 26937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   let mk (q,is) = FullAlias emptyAnnotation-                                            (Nmc q)-                                            (map Nmc is)-                                            $ wrapIfJoin _annotatedTree-                       wrapIfJoin tr = case tr of-                                          JoinTref {} -> TableRefParens emptyAnnotation tr-                                          _ -> tr-                   in maybe _annotatedTree     mk _newAlias-                   {-# LINE 26950 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)-              _newAlias =-                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   if tcfAddFullTablerefAliases _lhsIflags-                   then do-                     env <- either (const Nothing) Just _eEnv-                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env-                     let qs = map (fst . fst) cs-                     if all (== head qs) qs-                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)-                       else-                                                            Nothing-                   else Nothing-                   {-# LINE 26965 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 93, column 13)-              _selOouterDownEnv =-                  ({-# LINE 93 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Nothing-                   {-# LINE 26971 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 844, column 24)-              _selOassignmentCastContext =-                  ({-# LINE 844 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 26977 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SubTref _annIannotatedTree _selIannotatedTree-                   {-# LINE 26983 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SubTref _annIoriginalTree _selIoriginalTree-                   {-# LINE 26989 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 26995 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27001 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27007 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _selOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =-                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRef_JoinTref :: T_Annotation ->-                         T_TableRef ->-                         Natural ->-                         JoinType ->-                         (Maybe JoinHint) ->-                         T_TableRef ->-                         T_OnExpr ->-                         T_TableRef-_sem_TableRef_JoinTref ann_ tref0_ nat_ joinType_ joinHint_ tref1_ onExpr_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _onExprOdownEnv :: Environment-              _lhsOannotatedTree :: TableRef-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tref0Ocat :: Catalog-              _tref0Oflags :: TypeCheckFlags-              _tref0OimCast :: (Maybe TypeExtra)-              _tref1Ocat :: Catalog-              _tref1Oflags :: TypeCheckFlags-              _tref1OimCast :: (Maybe TypeExtra)-              _onExprOcat :: Catalog-              _onExprOflags :: TypeCheckFlags-              _onExprOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tref0IannotatedTree :: TableRef-              _tref0IoriginalTree :: TableRef-              _tref0IupEnv :: Environment-              _tref1IannotatedTree :: TableRef-              _tref1IoriginalTree :: TableRef-              _tref1IupEnv :: Environment-              _onExprIannotatedTree :: OnExpr-              _onExprIoriginalTree :: OnExpr-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 27083 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 27089 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 46, column 7)-              _eEnv =-                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   E.createJoinTrefEnvironment _lhsIcat-                     _tref0IupEnv _tref1IupEnv (convertJoinType joinType_)-                     $ case (joinType_,_onExprIoriginalTree) of-                        (x,Nothing) | x /= Cross -> Nothing-                        (_,Just (JoinUsing _ nms)) -> Just nms-                        _ -> Just []-                   {-# LINE 27100 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 56, column 7)-              _onExprOdownEnv =-                  ({-# LINE 56 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 27106 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   let mk (q,is) = FullAlias emptyAnnotation-                                            (Nmc q)-                                            (map Nmc is)-                                            $ wrapIfJoin _annotatedTree-                       wrapIfJoin tr = case tr of-                                          JoinTref {} -> TableRefParens emptyAnnotation tr-                                          _ -> tr-                   in maybe _annotatedTree     mk _newAlias-                   {-# LINE 27119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)-              _newAlias =-                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   if tcfAddFullTablerefAliases _lhsIflags-                   then do-                     env <- either (const Nothing) Just _eEnv-                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env-                     let qs = map (fst . fst) cs-                     if all (== head qs) qs-                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)-                       else-                                                            Nothing-                   else Nothing-                   {-# LINE 27134 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   JoinTref _annIannotatedTree _tref0IannotatedTree nat_ joinType_ joinHint_ _tref1IannotatedTree _onExprIannotatedTree-                   {-# LINE 27140 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   JoinTref _annIoriginalTree _tref0IoriginalTree nat_ joinType_ joinHint_ _tref1IoriginalTree _onExprIoriginalTree-                   {-# LINE 27146 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27152 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27158 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27164 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27170 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tref0Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27176 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tref0Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27182 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tref0OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27188 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tref1Ocat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27194 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tref1Oflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27200 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tref1OimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27206 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _onExprOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27212 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _onExprOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27218 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _onExprOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27224 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tref0IannotatedTree,_tref0IoriginalTree,_tref0IupEnv) =-                  tref0_ _tref0Ocat _tref0Oflags _tref0OimCast-              ( _tref1IannotatedTree,_tref1IoriginalTree,_tref1IupEnv) =-                  tref1_ _tref1Ocat _tref1Oflags _tref1OimCast-              ( _onExprIannotatedTree,_onExprIoriginalTree) =-                  onExpr_ _onExprOcat _onExprOdownEnv _onExprOflags _onExprOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRef_TableAlias :: T_Annotation ->-                           NameComponent ->-                           T_TableRef ->-                           T_TableRef-_sem_TableRef_TableAlias ann_ tb_ tref_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _lhsOannotatedTree :: TableRef-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _trefOcat :: Catalog-              _trefOflags :: TypeCheckFlags-              _trefOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _trefIannotatedTree :: TableRef-              _trefIoriginalTree :: TableRef-              _trefIupEnv :: Environment-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 27264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 27270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 68, column 7)-              _eEnv =-                  ({-# LINE 68 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   Right $ E.createTrefAliasedEnvironment-                           (ncStrT tb_) Nothing _trefIupEnv-                   {-# LINE 27277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 124, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 124 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   case _trefIannotatedTree of-                     FullAlias _ _ c tr -> FullAlias emptyAnnotation tb_ c tr-                     TableAlias _ _ tr -> TableAlias emptyAnnotation tb_ tr-                     _ -> _annotatedTree-                   {-# LINE 27286 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TableAlias _annIannotatedTree tb_ _trefIannotatedTree-                   {-# LINE 27292 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TableAlias _annIoriginalTree tb_ _trefIoriginalTree-                   {-# LINE 27298 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27304 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27310 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27316 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27322 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27328 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27340 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =-                  tref_ _trefOcat _trefOflags _trefOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRef_FullAlias :: T_Annotation ->-                          NameComponent ->-                          ([NameComponent]) ->-                          T_TableRef ->-                          T_TableRef-_sem_TableRef_FullAlias ann_ tb_ cols_ tref_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _lhsOannotatedTree :: TableRef-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _trefOcat :: Catalog-              _trefOflags :: TypeCheckFlags-              _trefOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _trefIannotatedTree :: TableRef-              _trefIoriginalTree :: TableRef-              _trefIupEnv :: Environment-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 27377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 27383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 65, column 7)-              _eEnv =-                  ({-# LINE 65 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   Right $ E.createTrefAliasedEnvironment-                           (ncStrT tb_) (Just $ map ncStrT cols_) _trefIupEnv-                   {-# LINE 27390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 103, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 103 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   case _trefIannotatedTree of-                     FullAlias _ t _ tr -> FullAlias emptyAnnotation-                                             (if tb_ == Nmc "" then t else tb_) cols_                       tr-                     TableAlias _ _ tr -> FullAlias emptyAnnotation tb_ cols_                        tr-                     _ -> _annotatedTree-                   {-# LINE 27400 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   FullAlias _annIannotatedTree tb_ cols_ _trefIannotatedTree-                   {-# LINE 27406 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   FullAlias _annIoriginalTree tb_ cols_ _trefIoriginalTree-                   {-# LINE 27412 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27418 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27424 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27430 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27436 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27442 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27448 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27454 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =-                  tref_ _trefOcat _trefOflags _trefOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRef_TableRefParens :: T_Annotation ->-                               T_TableRef ->-                               T_TableRef-_sem_TableRef_TableRefParens ann_ tref_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _lhsOannotatedTree :: TableRef-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _trefOcat :: Catalog-              _trefOflags :: TypeCheckFlags-              _trefOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _trefIannotatedTree :: TableRef-              _trefIoriginalTree :: TableRef-              _trefIupEnv :: Environment-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 27489 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 27495 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 63, column 7)-              _eEnv =-                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   Right $ _trefIupEnv-                   {-# LINE 27501 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   let mk (q,is) = FullAlias emptyAnnotation-                                            (Nmc q)-                                            (map Nmc is)-                                            $ wrapIfJoin _annotatedTree-                       wrapIfJoin tr = case tr of-                                          JoinTref {} -> TableRefParens emptyAnnotation tr-                                          _ -> tr-                   in maybe _annotatedTree     mk _newAlias-                   {-# LINE 27514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)-              _newAlias =-                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   if tcfAddFullTablerefAliases _lhsIflags-                   then do-                     env <- either (const Nothing) Just _eEnv-                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env-                     let qs = map (fst . fst) cs-                     if all (== head qs) qs-                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)-                       else-                                                            Nothing-                   else Nothing-                   {-# LINE 27529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TableRefParens _annIannotatedTree _trefIannotatedTree-                   {-# LINE 27535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TableRefParens _annIoriginalTree _trefIoriginalTree-                   {-# LINE 27541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =-                  tref_ _trefOcat _trefOflags _trefOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRef_OdbcTableRef :: T_Annotation ->-                             T_TableRef ->-                             T_TableRef-_sem_TableRef_OdbcTableRef ann_ tref_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOupEnv :: Environment-              _eEnv :: (Either [TypeError] Environment)-              _lhsOannotatedTree :: TableRef-              _lhsOoriginalTree :: TableRef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _trefOcat :: Catalog-              _trefOflags :: TypeCheckFlags-              _trefOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _trefIannotatedTree :: TableRef-              _trefIoriginalTree :: TableRef-              _trefIupEnv :: Environment-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)-              _annOtpe =-                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either Left (Right . mkTypeExtraNN . TrefType)-                   (_eEnv     >>= E.envExpandStar Nothing)-                   {-# LINE 27618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)-              _lhsOupEnv =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   either (const E.brokeEnvironment) id _eEnv-                   {-# LINE 27624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 63, column 7)-              _eEnv =-                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   Right $ _trefIupEnv-                   {-# LINE 27630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)-              _lhsOannotatedTree =-                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   let mk (q,is) = FullAlias emptyAnnotation-                                            (Nmc q)-                                            (map Nmc is)-                                            $ wrapIfJoin _annotatedTree-                       wrapIfJoin tr = case tr of-                                          JoinTref {} -> TableRefParens emptyAnnotation tr-                                          _ -> tr-                   in maybe _annotatedTree     mk _newAlias-                   {-# LINE 27643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)-              _newAlias =-                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   if tcfAddFullTablerefAliases _lhsIflags-                   then do-                     env <- either (const Nothing) Just _eEnv-                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env-                     let qs = map (fst . fst) cs-                     if all (== head qs) qs-                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)-                       else-                                                            Nothing-                   else Nothing-                   {-# LINE 27658 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   OdbcTableRef _annIannotatedTree _trefIannotatedTree-                   {-# LINE 27664 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   OdbcTableRef _annIoriginalTree _trefIoriginalTree-                   {-# LINE 27670 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27676 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27682 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27688 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27694 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _trefOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27712 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =-                  tref_ _trefOcat _trefOflags _trefOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))--- TableRefList -------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : TableRefList -         originalTree         : TableRefList -         upEnv                : Environment-   alternatives:-      alternative Cons:-         child hd             : TableRef -         child tl             : TableRefList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type TableRefList = [TableRef]--- cata-_sem_TableRefList :: TableRefList ->-                    T_TableRefList-_sem_TableRefList list =-    (Prelude.foldr _sem_TableRefList_Cons _sem_TableRefList_Nil (Prelude.map _sem_TableRef list))--- semantic domain-type T_TableRefList = Catalog ->-                      TypeCheckFlags ->-                      (Maybe TypeExtra) ->-                      ( TableRefList,TableRefList,Environment)-data Inh_TableRefList = Inh_TableRefList {_cat_Inh_TableRefList :: Catalog,_flags_Inh_TableRefList :: TypeCheckFlags,_imCast_Inh_TableRefList :: (Maybe TypeExtra)}-data Syn_TableRefList = Syn_TableRefList {_annotatedTree_Syn_TableRefList :: TableRefList,_originalTree_Syn_TableRefList :: TableRefList,_upEnv_Syn_TableRefList :: Environment}-_wrap_TableRefList :: T_TableRefList ->-                     Inh_TableRefList ->-                     Syn_TableRefList-_wrap_TableRefList sem (Inh_TableRefList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_TableRefList _lhsOannotatedTree _lhsOoriginalTree _lhsOupEnv))-_sem_TableRefList_Cons :: T_TableRef ->-                         T_TableRefList ->-                         T_TableRefList-_sem_TableRefList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOupEnv :: Environment-              _lhsOannotatedTree :: TableRefList-              _lhsOoriginalTree :: TableRefList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: TableRef-              _hdIoriginalTree :: TableRef-              _hdIupEnv :: Environment-              _tlIannotatedTree :: TableRefList-              _tlIoriginalTree :: TableRefList-              _tlIupEnv :: Environment-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 20, column 7)-              _lhsOupEnv =-                  ({-# LINE 20 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   if E.isEmptyEnv _tlIupEnv-                   then _hdIupEnv-                   else-                          either (error . show) id $-                          E.createJoinTrefEnvironment _lhsIcat _hdIupEnv _tlIupEnv E.Inner $ Just []-                   {-# LINE 27791 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 27797 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 27803 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 27809 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27815 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27821 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27827 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27833 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27839 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 27851 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree,_hdIupEnv) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupEnv) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))-_sem_TableRefList_Nil :: T_TableRefList-_sem_TableRefList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOupEnv :: Environment-              _lhsOannotatedTree :: TableRefList-              _lhsOoriginalTree :: TableRefList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 18, column 9)-              _lhsOupEnv =-                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}-                   E.emptyEnvironment-                   {-# LINE 27870 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 27876 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 27882 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 27888 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27894 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))--- TypeAttributeDef ---------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : TypeAttributeDef -         originalTree         : TypeAttributeDef -   alternatives:-      alternative TypeAttDef:-         child ann            : Annotation -         child name           : {NameComponent}-         child typ            : TypeName -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data TypeAttributeDef = TypeAttDef (Annotation) (NameComponent) (TypeName)-                      deriving ( Data,Eq,Show,Typeable)--- cata-_sem_TypeAttributeDef :: TypeAttributeDef ->-                        T_TypeAttributeDef-_sem_TypeAttributeDef (TypeAttDef _ann _name _typ) =-    (_sem_TypeAttributeDef_TypeAttDef (_sem_Annotation _ann) _name (_sem_TypeName _typ))--- semantic domain-type T_TypeAttributeDef = Catalog ->-                          TypeCheckFlags ->-                          (Maybe TypeExtra) ->-                          ( TypeAttributeDef,TypeAttributeDef)-data Inh_TypeAttributeDef = Inh_TypeAttributeDef {_cat_Inh_TypeAttributeDef :: Catalog,_flags_Inh_TypeAttributeDef :: TypeCheckFlags,_imCast_Inh_TypeAttributeDef :: (Maybe TypeExtra)}-data Syn_TypeAttributeDef = Syn_TypeAttributeDef {_annotatedTree_Syn_TypeAttributeDef :: TypeAttributeDef,_originalTree_Syn_TypeAttributeDef :: TypeAttributeDef}-_wrap_TypeAttributeDef :: T_TypeAttributeDef ->-                         Inh_TypeAttributeDef ->-                         Syn_TypeAttributeDef-_wrap_TypeAttributeDef sem (Inh_TypeAttributeDef _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_TypeAttributeDef _lhsOannotatedTree _lhsOoriginalTree))-_sem_TypeAttributeDef_TypeAttDef :: T_Annotation ->-                                   NameComponent ->-                                   T_TypeName ->-                                   T_TypeAttributeDef-_sem_TypeAttributeDef_TypeAttDef ann_ name_ typ_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TypeAttributeDef-              _lhsOoriginalTree :: TypeAttributeDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 231, column 35)-              _annOtpe =-                  ({-# LINE 231 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 27962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TypeAttDef _annIannotatedTree name_ _typIannotatedTree-                   {-# LINE 27968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   TypeAttDef _annIoriginalTree name_ _typIoriginalTree-                   {-# LINE 27974 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 27980 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 27986 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 27992 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 27998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- TypeAttributeDefList -----------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : TypeAttributeDefList -         originalTree         : TypeAttributeDefList -   alternatives:-      alternative Cons:-         child hd             : TypeAttributeDef -         child tl             : TypeAttributeDefList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type TypeAttributeDefList = [TypeAttributeDef]--- cata-_sem_TypeAttributeDefList :: TypeAttributeDefList ->-                            T_TypeAttributeDefList-_sem_TypeAttributeDefList list =-    (Prelude.foldr _sem_TypeAttributeDefList_Cons _sem_TypeAttributeDefList_Nil (Prelude.map _sem_TypeAttributeDef list))--- semantic domain-type T_TypeAttributeDefList = Catalog ->-                              TypeCheckFlags ->-                              (Maybe TypeExtra) ->-                              ( TypeAttributeDefList,TypeAttributeDefList)-data Inh_TypeAttributeDefList = Inh_TypeAttributeDefList {_cat_Inh_TypeAttributeDefList :: Catalog,_flags_Inh_TypeAttributeDefList :: TypeCheckFlags,_imCast_Inh_TypeAttributeDefList :: (Maybe TypeExtra)}-data Syn_TypeAttributeDefList = Syn_TypeAttributeDefList {_annotatedTree_Syn_TypeAttributeDefList :: TypeAttributeDefList,_originalTree_Syn_TypeAttributeDefList :: TypeAttributeDefList}-_wrap_TypeAttributeDefList :: T_TypeAttributeDefList ->-                             Inh_TypeAttributeDefList ->-                             Syn_TypeAttributeDefList-_wrap_TypeAttributeDefList sem (Inh_TypeAttributeDefList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_TypeAttributeDefList _lhsOannotatedTree _lhsOoriginalTree))-_sem_TypeAttributeDefList_Cons :: T_TypeAttributeDef ->-                                 T_TypeAttributeDefList ->-                                 T_TypeAttributeDefList-_sem_TypeAttributeDefList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: TypeAttributeDefList-              _lhsOoriginalTree :: TypeAttributeDefList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: TypeAttributeDef-              _hdIoriginalTree :: TypeAttributeDef-              _tlIannotatedTree :: TypeAttributeDefList-              _tlIoriginalTree :: TypeAttributeDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 28093 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 28099 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28129 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28135 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_TypeAttributeDefList_Nil :: T_TypeAttributeDefList-_sem_TypeAttributeDefList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: TypeAttributeDefList-              _lhsOoriginalTree :: TypeAttributeDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 28165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 28171 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- TypeName -----------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : TypeName -         namedType            : Maybe TypeExtra-         originalTree         : TypeName -   alternatives:-      alternative SimpleTypeName:-         child ann            : Annotation -         child tn             : Name -         visit 0:-            local canType     : {[NameComponent] -> [NameComponent]}-            local tpe         : {Either [TypeError] TypeExtra}-            local annotatedTree : _-            local originalTree : _-      alternative PrecTypeName:-         child ann            : Annotation -         child tn             : Name -         child prec           : {Integer}-         visit 0:-            local canType     : {[NameComponent] -> [NameComponent]}-            local tpe         : {Either [TypeError] TypeExtra}-            local annotatedTree : _-            local originalTree : _-      alternative Prec2TypeName:-         child ann            : Annotation -         child tn             : Name -         child prec           : {Integer}-         child prec1          : {Integer}-         visit 0:-            local canType     : {[NameComponent] -> [NameComponent]}-            local tpe         : {Either [TypeError] TypeExtra}-            local annotatedTree : _-            local originalTree : _-      alternative ArrayTypeName:-         child ann            : Annotation -         child typ            : TypeName -         visit 0:-            local canType     : {[NameComponent] -> [NameComponent]}-            local tpe         : {Either [TypeError] TypeExtra}-            local annotatedTree : _-            local originalTree : _-      alternative SetOfTypeName:-         child ann            : Annotation -         child typ            : TypeName -         visit 0:-            local canType     : {[NameComponent] -> [NameComponent]}-            local tpe         : {Either [TypeError] TypeExtra}-            local annotatedTree : _-            local originalTree : _--}-data TypeName = SimpleTypeName (Annotation) (Name)-              | PrecTypeName (Annotation) (Name) (Integer)-              | Prec2TypeName (Annotation) (Name) (Integer) (Integer)-              | ArrayTypeName (Annotation) (TypeName)-              | SetOfTypeName (Annotation) (TypeName)-              deriving ( Data,Eq,Show,Typeable)--- cata-_sem_TypeName :: TypeName ->-                T_TypeName-_sem_TypeName (SimpleTypeName _ann _tn) =-    (_sem_TypeName_SimpleTypeName (_sem_Annotation _ann) (_sem_Name _tn))-_sem_TypeName (PrecTypeName _ann _tn _prec) =-    (_sem_TypeName_PrecTypeName (_sem_Annotation _ann) (_sem_Name _tn) _prec)-_sem_TypeName (Prec2TypeName _ann _tn _prec _prec1) =-    (_sem_TypeName_Prec2TypeName (_sem_Annotation _ann) (_sem_Name _tn) _prec _prec1)-_sem_TypeName (ArrayTypeName _ann _typ) =-    (_sem_TypeName_ArrayTypeName (_sem_Annotation _ann) (_sem_TypeName _typ))-_sem_TypeName (SetOfTypeName _ann _typ) =-    (_sem_TypeName_SetOfTypeName (_sem_Annotation _ann) (_sem_TypeName _typ))--- semantic domain-type T_TypeName = Catalog ->-                  TypeCheckFlags ->-                  (Maybe TypeExtra) ->-                  ( TypeName,(Maybe TypeExtra),TypeName)-data Inh_TypeName = Inh_TypeName {_cat_Inh_TypeName :: Catalog,_flags_Inh_TypeName :: TypeCheckFlags,_imCast_Inh_TypeName :: (Maybe TypeExtra)}-data Syn_TypeName = Syn_TypeName {_annotatedTree_Syn_TypeName :: TypeName,_namedType_Syn_TypeName :: (Maybe TypeExtra),_originalTree_Syn_TypeName :: TypeName}-_wrap_TypeName :: T_TypeName ->-                 Inh_TypeName ->-                 Syn_TypeName-_wrap_TypeName sem (Inh_TypeName _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_TypeName _lhsOannotatedTree _lhsOnamedType _lhsOoriginalTree))-_sem_TypeName_SimpleTypeName :: T_Annotation ->-                               T_Name ->-                               T_TypeName-_sem_TypeName_SimpleTypeName ann_ tn_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOnamedType :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _tnOtpe :: (Either [TypeError] TypeExtra)-              _canType :: ([NameComponent] -> [NameComponent])-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TypeName-              _lhsOoriginalTree :: TypeName-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tnOcat :: Catalog-              _tnOflags :: TypeCheckFlags-              _tnOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tnIannotatedTree :: Name-              _tnIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)-              _lhsOnamedType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 28302 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)-              _annOtpe =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either Left (const $ Left []) _tpe-                   {-# LINE 28308 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 39, column 10)-              _tnOtpe =-                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   Left []-                   {-# LINE 28314 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)-              _canType =-                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   \x -> case x of-                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]-                      _ -> x-                   {-# LINE 28322 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 63, column 10)-              _tpe =-                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   mkTypeExtraNN `liftM` catLookupType _lhsIcat (_canType     $ nameComponents _tnIoriginalTree)-                   {-# LINE 28328 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SimpleTypeName _annIannotatedTree _tnIannotatedTree-                   {-# LINE 28334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SimpleTypeName _annIoriginalTree _tnIoriginalTree-                   {-# LINE 28340 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28346 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28352 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28358 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28364 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28370 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28376 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28382 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28388 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tnIannotatedTree,_tnIoriginalTree) =-                  tn_ _tnOcat _tnOflags _tnOimCast _tnOtpe-          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))-_sem_TypeName_PrecTypeName :: T_Annotation ->-                             T_Name ->-                             Integer ->-                             T_TypeName-_sem_TypeName_PrecTypeName ann_ tn_ prec_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOnamedType :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _tnOtpe :: (Either [TypeError] TypeExtra)-              _canType :: ([NameComponent] -> [NameComponent])-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TypeName-              _lhsOoriginalTree :: TypeName-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tnOcat :: Catalog-              _tnOflags :: TypeCheckFlags-              _tnOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tnIannotatedTree :: Name-              _tnIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)-              _lhsOnamedType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 28424 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)-              _annOtpe =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either Left (const $ Left []) _tpe-                   {-# LINE 28430 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 39, column 10)-              _tnOtpe =-                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   Left []-                   {-# LINE 28436 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)-              _canType =-                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   \x -> case x of-                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]-                      _ -> x-                   {-# LINE 28444 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 77, column 9)-              _tpe =-                  ({-# LINE 77 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   ((\t -> t{tePrecision = Just $ fromIntegral prec_}) . mkTypeExtraNN)-                   `liftM` catLookupType _lhsIcat (nameComponents _tnIoriginalTree)-                   {-# LINE 28451 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PrecTypeName _annIannotatedTree _tnIannotatedTree prec_-                   {-# LINE 28457 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   PrecTypeName _annIoriginalTree _tnIoriginalTree prec_-                   {-# LINE 28463 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28469 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28475 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28481 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28487 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28493 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28499 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28505 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tnIannotatedTree,_tnIoriginalTree) =-                  tn_ _tnOcat _tnOflags _tnOimCast _tnOtpe-          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))-_sem_TypeName_Prec2TypeName :: T_Annotation ->-                              T_Name ->-                              Integer ->-                              Integer ->-                              T_TypeName-_sem_TypeName_Prec2TypeName ann_ tn_ prec_ prec1_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOnamedType :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _tnOtpe :: (Either [TypeError] TypeExtra)-              _canType :: ([NameComponent] -> [NameComponent])-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TypeName-              _lhsOoriginalTree :: TypeName-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _tnOcat :: Catalog-              _tnOflags :: TypeCheckFlags-              _tnOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _tnIannotatedTree :: Name-              _tnIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)-              _lhsOnamedType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 28548 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)-              _annOtpe =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either Left (const $ Left []) _tpe-                   {-# LINE 28554 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 39, column 10)-              _tnOtpe =-                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   Left []-                   {-# LINE 28560 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)-              _canType =-                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   \x -> case x of-                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]-                      _ -> x-                   {-# LINE 28568 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 80, column 9)-              _tpe =-                  ({-# LINE 80 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   ((\t -> t{tePrecision = Just $ fromIntegral prec_,-                             teScale = Just $ fromIntegral prec1_})-                         . mkTypeExtraNN)-                   `liftM` catLookupType _lhsIcat (nameComponents _tnIoriginalTree)-                   {-# LINE 28577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Prec2TypeName _annIannotatedTree _tnIannotatedTree prec_ prec1_-                   {-# LINE 28583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   Prec2TypeName _annIoriginalTree _tnIoriginalTree prec_ prec1_-                   {-# LINE 28589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28607 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tnOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _tnIannotatedTree,_tnIoriginalTree) =-                  tn_ _tnOcat _tnOflags _tnOimCast _tnOtpe-          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))-_sem_TypeName_ArrayTypeName :: T_Annotation ->-                              T_TypeName ->-                              T_TypeName-_sem_TypeName_ArrayTypeName ann_ typ_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOnamedType :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _canType :: ([NameComponent] -> [NameComponent])-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TypeName-              _lhsOoriginalTree :: TypeName-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)-              _lhsOnamedType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 28672 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)-              _annOtpe =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either Left (const $ Left []) _tpe-                   {-# LINE 28678 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)-              _canType =-                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   \x -> case x of-                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]-                      _ -> x-                   {-# LINE 28686 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 71, column 9)-              _tpe =-                  ({-# LINE 71 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   maybe (Left []) Right _typInamedType-                   >>= Right . (\t -> t{teType = ArrayType $ teType t})-                   {-# LINE 28693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ArrayTypeName _annIannotatedTree _typIannotatedTree-                   {-# LINE 28699 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ArrayTypeName _annIoriginalTree _typIoriginalTree-                   {-# LINE 28705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28717 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28723 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28729 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28735 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))-_sem_TypeName_SetOfTypeName :: T_Annotation ->-                              T_TypeName ->-                              T_TypeName-_sem_TypeName_SetOfTypeName ann_ typ_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOnamedType :: (Maybe TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _canType :: ([NameComponent] -> [NameComponent])-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: TypeName-              _lhsOoriginalTree :: TypeName-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)-              _lhsOnamedType =-                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either (const Nothing) Just _tpe-                   {-# LINE 28788 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)-              _annOtpe =-                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   either Left (const $ Left []) _tpe-                   {-# LINE 28794 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)-              _canType =-                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   \x -> case x of-                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]-                      _ -> x-                   {-# LINE 28802 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 74, column 9)-              _tpe =-                  ({-# LINE 74 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}-                   maybe (Left []) Right _typInamedType-                   >>= Right . (\t -> t{teType = Pseudo $ SetOfType $ teType t})-                   {-# LINE 28809 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetOfTypeName _annIannotatedTree _typIannotatedTree-                   {-# LINE 28815 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   SetOfTypeName _annIoriginalTree _typIoriginalTree-                   {-# LINE 28821 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28827 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28833 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28839 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28851 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28857 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28863 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28869 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))--- TypeNameList -------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : TypeNameList -         originalTree         : TypeNameList -   alternatives:-      alternative Cons:-         child hd             : TypeName -         child tl             : TypeNameList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type TypeNameList = [TypeName]--- cata-_sem_TypeNameList :: TypeNameList ->-                    T_TypeNameList-_sem_TypeNameList list =-    (Prelude.foldr _sem_TypeNameList_Cons _sem_TypeNameList_Nil (Prelude.map _sem_TypeName list))--- semantic domain-type T_TypeNameList = Catalog ->-                      TypeCheckFlags ->-                      (Maybe TypeExtra) ->-                      ( TypeNameList,TypeNameList)-data Inh_TypeNameList = Inh_TypeNameList {_cat_Inh_TypeNameList :: Catalog,_flags_Inh_TypeNameList :: TypeCheckFlags,_imCast_Inh_TypeNameList :: (Maybe TypeExtra)}-data Syn_TypeNameList = Syn_TypeNameList {_annotatedTree_Syn_TypeNameList :: TypeNameList,_originalTree_Syn_TypeNameList :: TypeNameList}-_wrap_TypeNameList :: T_TypeNameList ->-                     Inh_TypeNameList ->-                     Syn_TypeNameList-_wrap_TypeNameList sem (Inh_TypeNameList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_TypeNameList _lhsOannotatedTree _lhsOoriginalTree))-_sem_TypeNameList_Cons :: T_TypeName ->-                         T_TypeNameList ->-                         T_TypeNameList-_sem_TypeNameList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: TypeNameList-              _lhsOoriginalTree :: TypeNameList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: TypeName-              _hdInamedType :: (Maybe TypeExtra)-              _hdIoriginalTree :: TypeName-              _tlIannotatedTree :: TypeNameList-              _tlIoriginalTree :: TypeNameList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 28941 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 28947 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 28953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 28959 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28965 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28971 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28977 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 28983 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 28989 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 28995 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdInamedType,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_TypeNameList_Nil :: T_TypeNameList-_sem_TypeNameList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: TypeNameList-              _lhsOoriginalTree :: TypeNameList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 29013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 29019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- VarDef -------------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : VarDef -         originalTree         : VarDef -   alternatives:-      alternative VarDef:-         child ann            : Annotation -         child name           : {NameComponent}-         child typ            : TypeName -         child value          : {Maybe ScalarExpr}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative ParamAlias:-         child ann            : Annotation -         child name           : {NameComponent}-         child i              : {Integer}-         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative VarAlias:-         child ann            : Annotation -         child name           : {NameComponent}-         child aliased        : Name -         visit 0:-            local annotatedTree : _-            local originalTree : _--}-data VarDef = VarDef (Annotation) (NameComponent) (TypeName) ((Maybe ScalarExpr))-            | ParamAlias (Annotation) (NameComponent) (Integer)-            | VarAlias (Annotation) (NameComponent) (Name)-            deriving ( Data,Eq,Show,Typeable)--- cata-_sem_VarDef :: VarDef ->-              T_VarDef-_sem_VarDef (VarDef _ann _name _typ _value) =-    (_sem_VarDef_VarDef (_sem_Annotation _ann) _name (_sem_TypeName _typ) _value)-_sem_VarDef (ParamAlias _ann _name _i) =-    (_sem_VarDef_ParamAlias (_sem_Annotation _ann) _name _i)-_sem_VarDef (VarAlias _ann _name _aliased) =-    (_sem_VarDef_VarAlias (_sem_Annotation _ann) _name (_sem_Name _aliased))--- semantic domain-type T_VarDef = Catalog ->-                TypeCheckFlags ->-                (Maybe TypeExtra) ->-                ( VarDef,VarDef)-data Inh_VarDef = Inh_VarDef {_cat_Inh_VarDef :: Catalog,_flags_Inh_VarDef :: TypeCheckFlags,_imCast_Inh_VarDef :: (Maybe TypeExtra)}-data Syn_VarDef = Syn_VarDef {_annotatedTree_Syn_VarDef :: VarDef,_originalTree_Syn_VarDef :: VarDef}-_wrap_VarDef :: T_VarDef ->-               Inh_VarDef ->-               Syn_VarDef-_wrap_VarDef sem (Inh_VarDef _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_VarDef _lhsOannotatedTree _lhsOoriginalTree))-_sem_VarDef_VarDef :: T_Annotation ->-                     NameComponent ->-                     T_TypeName ->-                     (Maybe ScalarExpr) ->-                     T_VarDef-_sem_VarDef_VarDef ann_ name_ typ_ value_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: VarDef-              _lhsOoriginalTree :: VarDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _typOcat :: Catalog-              _typOflags :: TypeCheckFlags-              _typOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _typIannotatedTree :: TypeName-              _typInamedType :: (Maybe TypeExtra)-              _typIoriginalTree :: TypeName-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 235, column 21)-              _annOtpe =-                  ({-# LINE 235 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 29121 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   VarDef _annIannotatedTree name_ _typIannotatedTree value_-                   {-# LINE 29127 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   VarDef _annIoriginalTree name_ _typIoriginalTree value_-                   {-# LINE 29133 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29139 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29145 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29151 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29163 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29169 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29175 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _typOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29181 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =-                  typ_ _typOcat _typOflags _typOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_VarDef_ParamAlias :: T_Annotation ->-                         NameComponent ->-                         Integer ->-                         T_VarDef-_sem_VarDef_ParamAlias ann_ name_ i_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: VarDef-              _lhsOoriginalTree :: VarDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 232, column 25)-              _annOtpe =-                  ({-# LINE 232 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 29208 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ParamAlias _annIannotatedTree name_ i_-                   {-# LINE 29214 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   ParamAlias _annIoriginalTree name_ i_-                   {-# LINE 29220 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29226 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29232 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29238 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29244 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29250 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_VarDef_VarAlias :: T_Annotation ->-                       NameComponent ->-                       T_Name ->-                       T_VarDef-_sem_VarDef_VarAlias ann_ name_ aliased_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _aliasedOtpe :: (Either [TypeError] TypeExtra)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _lhsOannotatedTree :: VarDef-              _lhsOoriginalTree :: VarDef-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _aliasedOcat :: Catalog-              _aliasedOflags :: TypeCheckFlags-              _aliasedOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _aliasedIannotatedTree :: Name-              _aliasedIoriginalTree :: Name-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 233, column 23)-              _aliasedOtpe =-                  ({-# LINE 233 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 29281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 234, column 23)-              _annOtpe =-                  ({-# LINE 234 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}-                   Left []-                   {-# LINE 29287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   VarAlias _annIannotatedTree name_ _aliasedIannotatedTree-                   {-# LINE 29293 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   VarAlias _annIoriginalTree name_ _aliasedIoriginalTree-                   {-# LINE 29299 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29317 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29323 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29329 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _aliasedOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29335 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _aliasedOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29341 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _aliasedOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _aliasedIannotatedTree,_aliasedIoriginalTree) =-                  aliased_ _aliasedOcat _aliasedOflags _aliasedOimCast _aliasedOtpe-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- VarDefList ---------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : VarDefList -         originalTree         : VarDefList -   alternatives:-      alternative Cons:-         child hd             : VarDef -         child tl             : VarDefList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type VarDefList = [VarDef]--- cata-_sem_VarDefList :: VarDefList ->-                  T_VarDefList-_sem_VarDefList list =-    (Prelude.foldr _sem_VarDefList_Cons _sem_VarDefList_Nil (Prelude.map _sem_VarDef list))--- semantic domain-type T_VarDefList = Catalog ->-                    TypeCheckFlags ->-                    (Maybe TypeExtra) ->-                    ( VarDefList,VarDefList)-data Inh_VarDefList = Inh_VarDefList {_cat_Inh_VarDefList :: Catalog,_flags_Inh_VarDefList :: TypeCheckFlags,_imCast_Inh_VarDefList :: (Maybe TypeExtra)}-data Syn_VarDefList = Syn_VarDefList {_annotatedTree_Syn_VarDefList :: VarDefList,_originalTree_Syn_VarDefList :: VarDefList}-_wrap_VarDefList :: T_VarDefList ->-                   Inh_VarDefList ->-                   Syn_VarDefList-_wrap_VarDefList sem (Inh_VarDefList _lhsIcat _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast-     in  (Syn_VarDefList _lhsOannotatedTree _lhsOoriginalTree))-_sem_VarDefList_Cons :: T_VarDef ->-                       T_VarDefList ->-                       T_VarDefList-_sem_VarDefList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: VarDefList-              _lhsOoriginalTree :: VarDefList-              _hdOcat :: Catalog-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: VarDef-              _hdIoriginalTree :: VarDef-              _tlIannotatedTree :: VarDefList-              _tlIoriginalTree :: VarDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 29418 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 29424 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29430 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29436 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29442 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29448 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29454 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29460 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29466 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29472 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIoriginalTree) =-                  hd_ _hdOcat _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))-_sem_VarDefList_Nil :: T_VarDefList-_sem_VarDefList_Nil =-    (\ _lhsIcat-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOannotatedTree :: VarDefList-              _lhsOoriginalTree :: VarDefList-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 29490 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 29496 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29502 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29508 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))--- WithQuery ----------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         catExtIncomp         : Either [TypeError] Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : WithQuery -         colAliases           : Maybe [NameComponent]-         name                 : Text-         originalTree         : WithQuery -         upType               : Maybe [(Text,TypeExtra)]-   alternatives:-      alternative WithQuery:-         child ann            : Annotation -         child name           : {NameComponent}-         child colAliases     : {Maybe [NameComponent]}-         child ex             : QueryExpr -         visit 0:-            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}-            local tpe         : {Either [TypeError] TypeExtra}-            local annotatedTree : _-            local originalTree : _--}-data WithQuery = WithQuery (Annotation) (NameComponent) ((Maybe [NameComponent])) (QueryExpr)-               deriving ( Data,Eq,Show,Typeable)--- cata-_sem_WithQuery :: WithQuery ->-                 T_WithQuery-_sem_WithQuery (WithQuery _ann _name _colAliases _ex) =-    (_sem_WithQuery_WithQuery (_sem_Annotation _ann) _name _colAliases (_sem_QueryExpr _ex))--- semantic domain-type T_WithQuery = Catalog ->-                   (Either [TypeError] Catalog) ->-                   TypeCheckFlags ->-                   (Maybe TypeExtra) ->-                   ( WithQuery,(Maybe [NameComponent]),Text,WithQuery,(Maybe [(Text,TypeExtra)]))-data Inh_WithQuery = Inh_WithQuery {_cat_Inh_WithQuery :: Catalog,_catExtIncomp_Inh_WithQuery :: (Either [TypeError] Catalog),_flags_Inh_WithQuery :: TypeCheckFlags,_imCast_Inh_WithQuery :: (Maybe TypeExtra)}-data Syn_WithQuery = Syn_WithQuery {_annotatedTree_Syn_WithQuery :: WithQuery,_colAliases_Syn_WithQuery :: (Maybe [NameComponent]),_name_Syn_WithQuery :: Text,_originalTree_Syn_WithQuery :: WithQuery,_upType_Syn_WithQuery :: (Maybe [(Text,TypeExtra)])}-_wrap_WithQuery :: T_WithQuery ->-                  Inh_WithQuery ->-                  Syn_WithQuery-_wrap_WithQuery sem (Inh_WithQuery _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOcolAliases,_lhsOname,_lhsOoriginalTree,_lhsOupType) = sem _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast-     in  (Syn_WithQuery _lhsOannotatedTree _lhsOcolAliases _lhsOname _lhsOoriginalTree _lhsOupType))-_sem_WithQuery_WithQuery :: T_Annotation ->-                           NameComponent ->-                           (Maybe [NameComponent]) ->-                           T_QueryExpr ->-                           T_WithQuery-_sem_WithQuery_WithQuery ann_ name_ colAliases_ ex_ =-    (\ _lhsIcat-       _lhsIcatExtIncomp-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOname :: Text-              _lhsOannotatedTree :: WithQuery-              _lhsOcolAliases :: (Maybe [NameComponent])-              _tpee :: (Either [TypeError] [(Text,TypeExtra)])-              _tpe :: (Either [TypeError] TypeExtra)-              _lhsOupType :: (Maybe [(Text,TypeExtra)])-              _exOouterDownEnv :: (Maybe Environment)-              _annOtpe :: (Either [TypeError] TypeExtra)-              _exOexpectedType :: (Maybe [TypeExtra])-              _exOassignmentCastContext :: Bool-              _lhsOoriginalTree :: WithQuery-              _annOcat :: Catalog-              _annOflags :: TypeCheckFlags-              _annOimCast :: (Maybe TypeExtra)-              _exOcat :: Catalog-              _exOflags :: TypeCheckFlags-              _exOimCast :: (Maybe TypeExtra)-              _annIannotatedTree :: Annotation-              _annIoriginalTree :: Annotation-              _exIannotatedTree :: QueryExpr-              _exIoriginalTree :: QueryExpr-              _exIupType :: (Maybe [(Text,TypeExtra)])-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 56, column 9)-              _lhsOname =-                  ({-# LINE 56 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   ncStrT name_-                   {-# LINE 29594 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 57, column 9)-              _lhsOannotatedTree =-                  ({-# LINE 57 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   WithQuery _annIannotatedTree name_ colAliases_ _exIannotatedTree-                   {-# LINE 29600 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 58, column 9)-              _lhsOcolAliases =-                  ({-# LINE 58 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   colAliases_-                   {-# LINE 29606 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 62, column 9)-              _tpee =-                  ({-# LINE 62 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   maybe (Left []) Right _exIupType-                   {-# LINE 29612 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 64, column 9)-              _tpe =-                  ({-# LINE 64 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM (mkTypeExtra . CompositeType) _tpee-                   {-# LINE 29618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 66, column 9)-              _lhsOupType =-                  ({-# LINE 66 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   either (const Nothing) Just _tpee-                   {-# LINE 29624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 95, column 15)-              _exOouterDownEnv =-                  ({-# LINE 95 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Nothing-                   {-# LINE 29630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 101, column 9)-              _annOtpe =-                  ({-# LINE 101 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   Left []-                   {-# LINE 29636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 102, column 9)-              _exOexpectedType =-                  ({-# LINE 102 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   liftM (map snd) _exIupType-                   {-# LINE 29642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 845, column 27)-              _exOassignmentCastContext =-                  ({-# LINE 845 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}-                   False-                   {-# LINE 29648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WithQuery _annIannotatedTree name_ colAliases_ _exIannotatedTree-                   {-# LINE 29654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   WithQuery _annIoriginalTree name_ colAliases_ _exIoriginalTree-                   {-# LINE 29660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29666 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29672 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29678 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _annOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29684 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29690 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _exOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29702 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _annIannotatedTree,_annIoriginalTree) =-                  ann_ _annOcat _annOflags _annOimCast _annOtpe-              ( _exIannotatedTree,_exIoriginalTree,_exIupType) =-                  ex_ _exOassignmentCastContext _exOcat _exOexpectedType _exOflags _exOimCast _exOouterDownEnv-          in  ( _lhsOannotatedTree,_lhsOcolAliases,_lhsOname,_lhsOoriginalTree,_lhsOupType)))--- WithQueryList ------------------------------------------------{--   visit 0:-      inherited attributes:-         cat                  : Catalog-         catExtIncomp         : Either [TypeError] Catalog-         flags                : TypeCheckFlags-         imCast               : Maybe TypeExtra-      synthesized attributes:-         annotatedTree        : WithQueryList -         catExtComp           : Either [TypeError] Catalog-         originalTree         : WithQueryList -   alternatives:-      alternative Cons:-         child hd             : WithQuery -         child tl             : WithQueryList -         visit 0:-            local annotatedTree : _-            local originalTree : _-      alternative Nil:-         visit 0:-            local annotatedTree : _-            local originalTree : _--}-type WithQueryList = [WithQuery]--- cata-_sem_WithQueryList :: WithQueryList ->-                     T_WithQueryList-_sem_WithQueryList list =-    (Prelude.foldr _sem_WithQueryList_Cons _sem_WithQueryList_Nil (Prelude.map _sem_WithQuery list))--- semantic domain-type T_WithQueryList = Catalog ->-                       (Either [TypeError] Catalog) ->-                       TypeCheckFlags ->-                       (Maybe TypeExtra) ->-                       ( WithQueryList,(Either [TypeError] Catalog),WithQueryList)-data Inh_WithQueryList = Inh_WithQueryList {_cat_Inh_WithQueryList :: Catalog,_catExtIncomp_Inh_WithQueryList :: (Either [TypeError] Catalog),_flags_Inh_WithQueryList :: TypeCheckFlags,_imCast_Inh_WithQueryList :: (Maybe TypeExtra)}-data Syn_WithQueryList = Syn_WithQueryList {_annotatedTree_Syn_WithQueryList :: WithQueryList,_catExtComp_Syn_WithQueryList :: (Either [TypeError] Catalog),_originalTree_Syn_WithQueryList :: WithQueryList}-_wrap_WithQueryList :: T_WithQueryList ->-                      Inh_WithQueryList ->-                      Syn_WithQueryList-_wrap_WithQueryList sem (Inh_WithQueryList _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast) =-    (let ( _lhsOannotatedTree,_lhsOcatExtComp,_lhsOoriginalTree) = sem _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast-     in  (Syn_WithQueryList _lhsOannotatedTree _lhsOcatExtComp _lhsOoriginalTree))-_sem_WithQueryList_Cons :: T_WithQuery ->-                          T_WithQueryList ->-                          T_WithQueryList-_sem_WithQueryList_Cons hd_ tl_ =-    (\ _lhsIcat-       _lhsIcatExtIncomp-       _lhsIflags-       _lhsIimCast ->-         (let _tlOcatExtIncomp :: (Either [TypeError] Catalog)-              _hdOcat :: Catalog-              _lhsOannotatedTree :: WithQueryList-              _lhsOoriginalTree :: WithQueryList-              _lhsOcatExtComp :: (Either [TypeError] Catalog)-              _hdOcatExtIncomp :: (Either [TypeError] Catalog)-              _hdOflags :: TypeCheckFlags-              _hdOimCast :: (Maybe TypeExtra)-              _tlOcat :: Catalog-              _tlOflags :: TypeCheckFlags-              _tlOimCast :: (Maybe TypeExtra)-              _hdIannotatedTree :: WithQuery-              _hdIcolAliases :: (Maybe [NameComponent])-              _hdIname :: Text-              _hdIoriginalTree :: WithQuery-              _hdIupType :: (Maybe [(Text,TypeExtra)])-              _tlIannotatedTree :: WithQueryList-              _tlIcatExtComp :: (Either [TypeError] Catalog)-              _tlIoriginalTree :: WithQueryList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 34, column 9)-              _tlOcatExtIncomp =-                  ({-# LINE 34 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   do-                   let getWithEx (WithQuery _ _ _ ex) = ex-                   upType' <- maybe (Left . anErrs . ann . getWithEx $ _hdIannotatedTree) Right-                     _hdIupType-                   colTyPairs <- mapM (secondM typeToCatName) upType'-                   colTyPairs' <- case _hdIcolAliases of-                     Just alsNms -> do-                       unless (length alsNms == length colTyPairs) $-                         Left [BadCatalogUpdate "number of aliases differs from number of expressions in the select"]-                       return $ zip (map ncStrT alsNms) $ map snd colTyPairs-                     Nothing -> return colTyPairs-                   updateCatalog [CatCreateTable ("public", _hdIname ) colTyPairs'] =<< _lhsIcatExtIncomp-                   {-# LINE 29795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 47, column 9)-              _hdOcat =-                  ({-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   case _lhsIcatExtIncomp of-                     Right catExtIncomp -> catExtIncomp-                     Left _ -> _lhsIcat-                   {-# LINE 29803 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIannotatedTree _tlIannotatedTree-                   {-# LINE 29809 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   (:) _hdIoriginalTree _tlIoriginalTree-                   {-# LINE 29815 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29821 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29827 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (up)-              _lhsOcatExtComp =-                  ({-# LINE 29 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _tlIcatExtComp-                   {-# LINE 29833 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOcatExtIncomp =-                  ({-# LINE 24 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIcatExtIncomp-                   {-# LINE 29839 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _hdOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29851 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOcat =-                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIcat-                   {-# LINE 29857 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOflags =-                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIflags-                   {-# LINE 29863 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- copy rule (down)-              _tlOimCast =-                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _lhsIimCast-                   {-# LINE 29869 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              ( _hdIannotatedTree,_hdIcolAliases,_hdIname,_hdIoriginalTree,_hdIupType) =-                  hd_ _hdOcat _hdOcatExtIncomp _hdOflags _hdOimCast-              ( _tlIannotatedTree,_tlIcatExtComp,_tlIoriginalTree) =-                  tl_ _tlOcat _tlOcatExtIncomp _tlOflags _tlOimCast-          in  ( _lhsOannotatedTree,_lhsOcatExtComp,_lhsOoriginalTree)))-_sem_WithQueryList_Nil :: T_WithQueryList-_sem_WithQueryList_Nil =-    (\ _lhsIcat-       _lhsIcatExtIncomp-       _lhsIflags-       _lhsIimCast ->-         (let _lhsOcatExtComp :: (Either [TypeError] Catalog)-              _lhsOannotatedTree :: WithQueryList-              _lhsOoriginalTree :: WithQueryList-              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 52, column 9)-              _lhsOcatExtComp =-                  ({-# LINE 52 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}-                   _lhsIcatExtIncomp-                   {-# LINE 29889 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _annotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 29895 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _originalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   []-                   {-# LINE 29901 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOannotatedTree =-                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _annotatedTree-                   {-# LINE 29907 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}-                   )-              -- self rule-              _lhsOoriginalTree =-                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}-                   _originalTree-                   {-# LINE 29913 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+-- UUAGC 0.9.52.2 (hssqlppp/src/Database/HsSqlPpp/Internals/AstInterna)+module Database.HsSqlPpp.Internals.AstInternal(+    --from the ag files:+    --ast nodes+    Statement (..)+   ,QueryExpr (..)+   ,WithQueryList+   ,WithQuery(..)+   ,FnBody (..)+   ,SetClause (..)+   ,SetClauseList+   ,TableRef (..)+   ,JoinExpr (..)+   ,JoinType (..)+   ,JoinHint (..)+   ,SelectList (..)+   ,SelectItem (..)+   ,CopyFromSource (..)+   ,CopyToSource(..)+   ,CopyToOption(..)+   ,CopyFromOption(..)+   ,TablePartitionDef(..)+   ,TablePartitionDateTimeInterval(..)+   ,AttributeDef (..)+   ,RowConstraint (..)+   ,TableOption(..)+   ,AlterDatabaseOperation(..)+   ,AlterTableOperation(..)+   ,AlterTableAction(..)+   ,AlterSequenceOperation(..)+   ,AlterSequenceAction(..)+   ,AlterColumnAction(..)+   ,AlterSchemaOperation(..)+   ,Constraint (..)+   ,TypeAttributeDef (..)+   ,ParamDef (..)+   ,VarDef (..)+   ,RaiseType (..)+   ,CombineType (..)+   ,Volatility (..)+   ,Language (..)+   ,TypeName (..)+   ,DropType (..)+   ,Cascade (..)+   ,Direction (..)+   ,Distinct (..)+   ,NullsOrder(..)+   ,Natural (..)+   ,IfExists (..)+   ,Replace(..)+   ,RestartIdentity (..)+   ,ScalarExpr (..)+   ,Name(..)+   ,nameComponents+   ,NameComponent(..)+   ,ncStr+   ,IntervalField(..)+   ,ExtractField(..)+   ,FrameClause(..)+   ,OdbcLiteralType(..)+   ,InList (..)+   ,LiftFlavour(..)+   ,TriggerWhen(..)+   ,TriggerEvent(..)+   ,TriggerFire(..)+   ,QueryHint(..)+   ,StatementList+   ,ScalarExprListStatementListTripleList+   ,ScalarExprListStatementListTriple+   ,ScalarExprList+   ,ParamDefList+   ,AttributeDefList+   ,ConstraintList+   ,TypeAttributeDefList+   ,TypeNameList+   ,NameTypeNameListPair+   ,NameTypeNameListPairList+   ,ScalarExprStatementListPairList+   --,SetClauseList+   ,CaseScalarExprListScalarExprPairList+   ,MaybeScalarExpr+   ,TableRefList+   ,ScalarExprListList+   ,SelectItemList+   ,OnExpr+   ,RowConstraintList+   ,VarDefList+   ,ScalarExprStatementListPair+   ,CaseScalarExprListScalarExprPair+   ,ScalarExprDirectionPair+   ,ScalarExprDirectionPairList+   ,MaybeBoolExpr+   ,MaybeSelectList+   ,SetValue(..)+   ,AlterTableActionList+   ,NameComponentList+   ,MaybeNameComponentList+   -- typechecking+   ,typeCheckStatements+   --,typeCheckParameterizedStatement+   ,typeCheckScalarExpr+   --,typeCheckScalarExprEnv+   ,typeCheckQueryExpr+   ,TypeCheckFlags(..)+   ,addExplicitCasts+   ,addImplicitCasts+   -- annotation+   ,Annotation(..)+   --,TypeExtra(..)+   ,SourcePosition+   ,ParameterizedStatementType+   ,getAnnotation+   ,updateAnnotation+   ,emptyAnnotation+   ,makeSelect+   --,canonicalizeTypeNames+) where++--import Data.Maybe+--import Data.Either+--import Data.List+--import Control.Applicative+import Data.Data+--import Data.Char+--import Control.Monad.State+--import Control.Arrow++import Data.Generics+import Data.Generics.Uniplate.Data+--import Debug.Trace+--import Text.Show.Pretty+++--import Database.HsSqlPpp.Internals.TypesInternal++--import Database.HsSqlPpp.Internals.TypeChecking.TypeConversion+--import Database.HsSqlPpp.Internals.TypeChecking.Environment hiding (JoinType(..))++--import Database.HsSqlPpp.Internals.Catalog.CatalogInternal (NameComponent(..),ncStr)++--import Database.HsSqlPpp.Utils.Utils+--import Database.HsSqlPpp.Internals.Dialect+--import Data.Text (Text)+import qualified Data.Text as T+--import qualified Data.Text.Lazy as LT++-- very bad, we use types in the syntax outside of the already exception+-- in the annotation (which can be removed when the annotation type+-- becomes a type parameters+-- can replace the use of type extra with (typename,int,int) triple+-- to fix this+--import Database.HsSqlPpp.Internals.TypesInternal (TypeExtra)++++{-# LINE 2 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}++import Data.Text (Text)+import qualified Database.HsSqlPpp.Internals.TypeChecking.Environment as E+import Database.HsSqlPpp.Internals.TypeChecking.Environment (Environment)+import Database.HsSqlPpp.Internals.TypesInternal+import Database.HsSqlPpp.Internals.Dialect+import Database.HsSqlPpp.Internals.Catalog.CatalogInternal+import Database.HsSqlPpp.Internals.Catalog.CatalogTypes+import Database.HsSqlPpp.Internals.Catalog.CatalogBuilder+import Database.HsSqlPpp.Internals.TypeChecking.TypeConversion.TypeConversion++-- todo: find a better way to do this, this information should come+-- via the dialect or catalog in the attributes+import Database.HsSqlPpp.Dialects.OdbcCatalog++import Control.Monad+import Data.List+import Data.Maybe+import Data.Char+import Text.Read+import Control.Applicative+{-# LINE 182 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 14 "hssqlppp/src/Database/HsSqlPpp/Internals/Annotation.ag" #-}++import qualified Database.HsSqlPpp.Internals.TypesInternal as T+import qualified Database.HsSqlPpp.Internals.Catalog.CatalogTypes as C++{-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+{-# LINE 62 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}++-- todo: replace the other nmcString function with this one+-- which uses either instead of error+xnmcString :: NameComponent -> Either [TypeError] Text+xnmcString (QNmc n) = Right $ T.pack n+xnmcString (Nmc n) = Right $ T.pack $ map toLower n+xnmcString (AntiNameComponent _) = Left [InternalError "tried to get nmc string from antinamecomponent"]+{-# LINE 198 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 191 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}++splitTypeExtraList:: Maybe [TypeExtra] -> Maybe (TypeExtra,[TypeExtra])+splitTypeExtraList mte = mte >>= f+  where+    f [] = Nothing+    f (et:ets') = Just (et,ets')+{-# LINE 207 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 212 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+++-- | thet name to choose for a column in a select list which doesn't+-- have an explicit name - these are postgresql's rules+columnName :: ScalarExpr -> NameComponent+columnName (Identifier _ i) = last $ nameComponents i+columnName (App _ (Name _ ncs) _) = last ncs+columnName (Cast _ _ (SimpleTypeName _ (Name _ ncs))) = last ncs+columnName (ImplicitCast _ e _) = columnName e+columnName (WindowApp _ (App _ (Name _ ncs) _) _ _ _) = last ncs+columnName (AggregateApp _ _ (App _ (Name _ ncs) _) _) = last ncs+columnName _ = QNmc "?column?"+{-# LINE 222 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 160 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}++convertJoinType:: JoinType -> E.JoinType+convertJoinType LeftOuter = E.LeftOuter+convertJoinType RightOuter = E.RightOuter+convertJoinType FullOuter = E.FullOuter+convertJoinType _ = E.Inner+{-# LINE 231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 82 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}++secondM :: Functor f => (t -> f a) -> (t1, t) -> f (t1, a)+secondM f (a,b) = (a,) <$> f b+{-# LINE 237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}++needsImplicitCast:: Bool -> TypeExtra -> TypeExtra -> Bool+needsImplicitCast expectedCast upType expType+    = tePrecision upType /= tePrecision expType+      || teScale upType /= teScale expType+      || teNullable upType /= teNullable expType+          && nullabilityCast+      ||  teType upType /= teType expType+          && (not . null) (nub [teType upType, teType expType] \\ [ScalarType "varchar", ScalarType "text",ScalarType "nvarchar"])+  where+    nullabilityCast = expectedCast+-- this function appeared because nullability does not always influence the type to cast to+implicitCastType:: Bool -> TypeExtra -> TypeExtra -> TypeExtra+implicitCastType expectedCast upType expType+    = expType{tePrecision = precision, teScale = scale, teNullable = nullability}+  where+    nullabilityCast = expectedCast+    nullabilitySource = if nullabilityCast then expType else upType+    precisionSource = expType+    nullability = teNullable nullabilitySource+    precision = tePrecision precisionSource+    scale = teScale precisionSource+{-# LINE 262 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 513 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}++getMaybeIntsFromLiterals :: [ScalarExpr] -> MatchAppLiteralList+getMaybeIntsFromLiterals sel = map extractor sel+  where+   extractor :: ScalarExpr -> Maybe Int+   extractor (NumberLit _ s) = readMaybe s :: Maybe Int+   extractor _ = Nothing+{-# LINE 272 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 796 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}++classifyInteger :: Dialect -> String -> Either [TypeError] Text+classifyInteger d s = maybe (Left []) Right $ case (readMaybe s :: Maybe Integer) of+                      -- assuming number literals are always positive+                      Just n | n < (2 ^ (31 :: Integer)) -> ansiTypeNameToDialect d "int"+                             | n < (2 ^ (63 :: Integer)) -> ansiTypeNameToDialect d "bigint"+                      _ -> ansiTypeNameToDialect d "numeric"+{-# LINE 282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 26 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+++-- | some options when typechecking+data TypeCheckFlags =+    TypeCheckFlags+    { -- | add qualifiers to unqualified ids where possible+     tcfAddQualifiers :: Bool+     -- | add full aliases to every tableref and subselect+    ,tcfAddFullTablerefAliases :: Bool+     -- | add explicit aliases to all select items+    ,tcfAddSelectItemAliases :: Bool+     -- | expand stars in select lists to explicit list columns+    ,tcfExpandStars :: Bool+    ,tcfDialect :: Dialect}+    deriving (Show,Eq)++-- | Typechecks the ast, and returns the updated catalog (which+-- includes changes from any ddl statements in the ast).+typeCheckStatements :: TypeCheckFlags -> Catalog -> [Statement] -> (Catalog,[Statement])+typeCheckStatements f cat sts =+    let t = _sem_Root (Root sts)+        ta = _wrap_Root t Inh_Root {_cat_Inh_Root = cat+                                  ,_flags_Inh_Root = f+                                  {-,_lib_Inh_Root = emptyBindings+                                  ,_idenv_Inh_Root = emptyIDEnv "tcs"-}}+        tl = _annotatedTree_Syn_Root ta+        cat1 = cat --_producedCat_Syn_Root ta+    in case tl of+         Root r -> (cat1,fixTree (tcfDialect f) r)+-- | Typecheck a query expr+typeCheckQueryExpr :: TypeCheckFlags -> Catalog -> QueryExpr -> QueryExpr+typeCheckQueryExpr f cat qe =+   let (_,[QueryStatement _ qe']) = typeCheckStatements f cat [QueryStatement emptyAnnotation qe]+   in qe'++-- | Not working yet. Typechecks a statement possibly containing ?+-- placeholders. These are annotated with the 'inferred type', and the+-- stType annotation on the return value can be used to get this info+-- easily. Returns Left if the statement is not a query,insert,update or delete+-- statement+{-typeCheckParameterizedStatement :: TypeCheckFlags -> Catalog -> Statement -> Either String Statement+typeCheckParameterizedStatement f cat st =+    case st of+      QueryStatement _ _ -> tc+      Insert _ _ _ _ _ -> tc+      Update _ _ _ _ _ _ -> tc+      Delete _ _ _ _ _ -> tc+      _ -> Left "requires select, update, insert or delete statement"+    where+      tc = let tl = typeCheckStatements f cat [st]+           in case tl of+                (_,[st1]) -> Right st1+                _ -> error "impossible happened in typeCheckPS!"+-}+{-+-- | type check a scalar expr+typeCheckScalarExpr :: TypeCheckFlags -> Catalog -> ScalarExpr -> ScalarExpr+typeCheckScalarExpr f cat ex =+    let t = _sem_ScalarExprRoot (ScalarExprRoot ex)+        rt = (_annotatedTree_Syn_ScalarExprRoot+              (_wrap_ScalarExprRoot t Inh_ScalarExprRoot {_cat_Inh_ScalarExprRoot = cat+                                                        ,_flags_Inh_ScalarExprRoot = f+                                                        ,_downEnv_Inh_ScalarExprRoot = E.emptyEnvironment+                                                        {-,_lib_Inh_ScalarExprRoot = emptyBindings+                                                        ,_idenv_Inh_ScalarExprRoot = emptyIDEnv "t+cse"-}}))+    in case rt of+         ScalarExprRoot e -> fixTree e -}++typeCheckScalarExpr ::  TypeCheckFlags -> Catalog -> Environment+                          -> ScalarExpr -> ScalarExpr+typeCheckScalarExpr f cat env ex =+    let t = _sem_ScalarExprRoot (ScalarExprRoot ex)+        rt = _annotatedTree_Syn_ScalarExprRoot+                $ _wrap_ScalarExprRoot t+                    Inh_ScalarExprRoot{_cat_Inh_ScalarExprRoot = cat+                                      ,_flags_Inh_ScalarExprRoot = f+                                      ,_downEnv_Inh_ScalarExprRoot = env}+    in case rt of+         ScalarExprRoot e -> fixTree (tcfDialect f) e++{-# LINE 366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 158 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+++-- | run on a typechecked tree. Finds all the places where an implicit+-- cast has been used in the typechecking and inserts an explicit cast+addExplicitCasts :: Data a => a -> a+addExplicitCasts = transformBi removeDoubleCasts . transformBi addCast+  where+    addCast :: ScalarExpr -> ScalarExpr+    addCast e = fromMaybe e $ do+                  t <- anImplicitCast (getAnnotation e)+                  n <- nameOfType $ teType t+                  return $ Cast emptyAnnotation e n+    -- addCast isn't very smart, so remove any unneeded casts+    -- that it has inserted. Only do this when have two+    -- nested casts which cast to the same type, so this+    -- shouldn't cause problems with sane sql+    removeDoubleCasts :: ScalarExpr -> ScalarExpr+    removeDoubleCasts e = case e of+      (Cast a (Cast _ e' t1) t)+         | resetAnnotations t1 == resetAnnotations t -> Cast a e' t+      e' -> e'+    resetAnnotations = transformBi (const emptyAnnotation)+-- | variation of the above, which uses ImplicitCast ctor+addImplicitCasts :: Data a => Catalog -> a -> a+addImplicitCasts cat = transformBi removeDoubleCasts . transformBi addCast+  where+    addCast:: ScalarExpr -> ScalarExpr+    addCast e = fromMaybe e $ do+                  te <- anImplicitCast ann'+                  -- ImplicitCastToDo: why anImplicitCast is not Nothing above Star+                  _ <- nameOfType $ teType te -- in order to preserve the old logic+                  -- guard $ isCastable e $ teType te+                  guard $ anType ann' /= Just te+                  return $ ImplicitCast emptyAnnotation e te+      where+        _isCastable:: ScalarExpr -> Type -> Bool+        _isCastable e' to = fromMaybe False $ do+            from <- liftM teType $ anType $ getAnnotation e'+            either  (const $ if from == UnknownType then Just True else Nothing) Just+                    $ catCast cat ImplicitCastContext from to+        ann' = getAnnotation e+    removeDoubleCasts:: ScalarExpr -> ScalarExpr+    removeDoubleCasts e = fst $ accumulateCasts e+    -- For each implicit cast, if there is a sequence of implicit casts right under it,+    --    that remained after bottom-up application of the algorithm being described:+    --  1. Check if there is a type in the sequence (of argument types of implicit casts),+    --      which is implicitly castable to the target type of the current implicit cast,+    --      according to the current catalog.+    --  2. If there is such a type, replace a sequence of casts that starts at this type with+    --      a single cast, and shorten the list of casts to be further investigated (snd of+    --      output type of this function).+    --    2.1. Analyze the list bottom-up, so that the longest possible sequence of casts is+    --      replaced.+    --  3. If there is no such a type, just add the current cast to the list.+    -- Reset the list on a node other than ImplicitCast.+    accumulateCasts:: ScalarExpr -> (ScalarExpr,[(ScalarExpr,Type)])+    accumulateCasts e = case e of+        ImplicitCast a e' te+          ->  let (e1,ets) = accumulateCasts e'+                  eStart = ImplicitCast a e1 te+                  isCastable (_,t) = either (const False) id+                      $ catCast cat ImplicitCastContext t $ teType te+                  f z xs = case dropWhile (not . isCastable) xs of+                      [] -> z+                      xs'@((e'',_):rest) -> f (ImplicitCast a e'' te, xs') rest+              in case anType $ getAnnotation e1 of+                    Nothing -> (eStart,[]) -- cut here (should not happen in practice)+                    Just te1 -> f (eStart, (e1, teType te1):ets) ets+        _ -> (e,[])++nameOfType :: Type -> Maybe TypeName+nameOfType (ScalarType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])+-- a hack to support precision cast from string literals+nameOfType UnknownType = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc "unknown"])+nameOfType (DomainType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])+nameOfType (EnumType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])+nameOfType (NamedCompositeType t) = Just $ SimpleTypeName emptyAnnotation (Name emptyAnnotation [Nmc $ T.unpack t])+nameOfType _ = Nothing++-- hack for various fixups+fixTree :: Data a => Dialect -> a -> a+fixTree = fixMssqlDates++{-+++disgusting hack to fix up datediff,datepart, convert and other+functions which accept a fixed list of keywords for one or more of the+arguments for sql server: set the type for the first argument to type+in if it is in the acceptable list.++This is really bad. What happens is that the normal typechecker will+check the keyword as an identifier and (usually!) put in unknown+identifier error. Then, when the function is typechecked, it will+ignore the type for this argument. After we've finished, the type+error is replaced with int type here.++The proper fix:++I think a good way to look at these is to consider them fixed enums+which can only accept a literal (and not an enum valued+expression). We set a flag/enum thing in the typecheck environment of+the identifier, so that it can check the identifier fits one of the+valid functions in the identifier itself. Then, there doesn't need to+be a fix here, and typechecking the function should work without a+hack here too. The typechecking of the function itself still needs+some special casing (e.g. for the convert function in odbc (and+similar in regular sql server syntax), the result type depends on the+value of the 'enum'. This can be implemented in a similar way to the+literal ints being passed to the function type checker.++This will be fixed with the rewrite of the findcallmatch/matchapp/a+million different fns for precision and nullability/tcApplike mess.++-}++fixMssqlDates :: Data a => Dialect -> a -> a+fixMssqlDates d = transformBi $ \x -> case x of+  App aa nm@(Name _ [Nmc fn]) [Identifier ai tn@(Name _ [Nmc tnn]),a,b]+    | map toLower fn `elem` ["datediff","dateadd"]+    , map toLower tnn `elem` dateparts ->+      App aa nm [Identifier (nai ai) tn,a,b]+  App aa nm@(Name _ [Nmc fn]) [Identifier ai tn@(Name _ [Nmc tnn]),a]+    | map toLower fn == "datepart"+    , map toLower tnn `elem` dateparts ->+      App aa nm [Identifier (nai ai) tn,a]+  App aa nm@(Name _ [Nmc fn]) [a,Identifier ai tn@(Name _ [Nmc tnn])]+    | map toLower fn == "convert"+    , map toLower tnn `elem` map fst odbcConvertTypes ->+      App aa nm [a,Identifier (nai ai) tn]+  App aa nm@(Name _ [Nmc fn]) (Identifier ai tn@(Name _ [Nmc tnn]):as)+    | map toLower fn `elem` ["timestampadd","timestampdiff"]+    , map toLower tnn `elem` odbcIntervalTypes ->+      App aa nm (Identifier (nai ai) tn:as)+  x' -> x'+  where+      dateparts :: [String]+      dateparts = ["day","dd","d","month","mm","m","year","yyyy"+                  ,"yy","quarter","qq","q","dayofyear","doy","dy","y"+                  ,"weekday","dw","week","ww","wk","hour","hh"+                  ,"minute","mi","n","second","ss","s","millisecond","ms"+                  ,"microsecond","mcs","nanosecond","ns"]+      -- todo: use canonical tsql name for typeInt+      nai ai = ai {anType = (mkTypeExtraNN . ScalarType) <$> ansiTypeNameToDialect d "int"+                  ,anErrs = []}+++-- temp utility function++{-canonicalizeType :: Dialect -> Type -> Type+canonicalizeType d (ScalarType t) = ScalarType $ canonicalizeTypeName d t+canonicalizeType _ t = t-}++{-# LINE 522 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 20 "hssqlppp/src/Database/HsSqlPpp/Internals/Annotation.ag" #-}++-- | Represents a source file position, usually set by the parser.+type SourcePosition = (FilePath,Int,Int)++-- | Statement type is used for getting type information for a+-- parameterized statement. The first part is the args that the+-- parameterized statement needs, and the second is the names and types+-- of the output columns. No way to signal that a statement returns+-- exactly one row at the moment+type ParameterizedStatementType = ([T.Type],[(String,T.Type)])++{-# LINE 536 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 52 "hssqlppp/src/Database/HsSqlPpp/Internals/Annotation.ag" #-}+++--some simple wrappers around uniplate for internal use. I'm not sure+--which of these are actually used++-- | An annotation value with no information.+emptyAnnotation :: Annotation+emptyAnnotation = Annotation Nothing Nothing [] Nothing []++-- | get the annotation for the root element of the tree passed+getAnnotation :: Data a => a -> Annotation+getAnnotation = head . childrenBi++--don't know how to do this one with uniplate++-- | Update the first annotation in a tree using the function supplied+updateAnnotation :: Data a => (Annotation -> Annotation) -> a -> a+updateAnnotation f = gmapT (mkT f)++{-# LINE 558 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 519 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++nameComponents :: Name -> [NameComponent]+nameComponents (Name _ is) = is+-- todo: don't use error+nameComponents (AntiName _) = error "tried to get namecomponents of antiname"+{-# LINE 566 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++++data LiftFlavour = LiftAny | LiftAll+                   deriving (Show,Eq,Typeable,Data)++data Direction = Asc | Desc+                 deriving (Show,Eq,Typeable,Data)++data NullsOrder = NullsDefault | NullsFirst | NullsLast+                 deriving (Show,Eq,Typeable,Data)++data Distinct = Distinct | All+                deriving (Show,Eq,Typeable,Data)++-- maybe should improve this, since you can have at least union+-- distinct and union all just like select distinct and select all++data CombineType = Except | Union | Intersect | UnionAll+                   deriving (Show,Eq,Typeable,Data)++data IntervalField = IntervalYear+                   | IntervalMonth+                   | IntervalDay+                   | IntervalHour+                   | IntervalMinute+                   | IntervalSecond+                   | IntervalYearToMonth+                   | IntervalDayToHour+                   | IntervalDayToMinute+                   | IntervalDayToSecond+                   | IntervalHourToMinute+                   | IntervalHourToSecond+                   | IntervalMinuteToSecond+                     deriving (Show,Eq,Typeable,Data)++data ExtractField = ExtractCentury+                  | ExtractDay+                  | ExtractDecade+                  | ExtractDow+                  | ExtractDoy+                  | ExtractEpoch+                  | ExtractHour+                  | ExtractIsodow+                  | ExtractIsoyear+                  | ExtractMicroseconds+                  | ExtractMillennium+                  | ExtractMilliseconds+                  | ExtractMinute+                  | ExtractMonth+                  | ExtractQuarter+                  | ExtractSecond+                  | ExtractTimezone+                  | ExtractTimezoneHour+                  | ExtractTimezoneMinute+                  | ExtractWeek+                  | ExtractYear+                    deriving (Show,Eq,Typeable,Data)++-- todo: this needs fixing, it is currently based on limited frame options+data FrameClause = FrameUnboundedPreceding+                 | FrameUnboundedFull+                 | FrameRowsUnboundedPreceding+                   deriving (Show,Eq,Typeable,Data)+++data OdbcLiteralType = OLDate+                     | OLTime+                     | OLTimestamp+                       deriving (Show,Eq,Typeable,Data)+{-# LINE 639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data JoinType = Inner | LeftOuter| RightOuter | FullOuter | Cross+                deriving (Show,Eq,Typeable,Data)+data JoinHint = Loop | Hash | Merge+                deriving (Show,Eq,Typeable,Data)+data Natural = Natural | Unnatural+               deriving (Show,Eq,Typeable,Data)+{-# LINE 649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++-- | 'default' valued select, use for creating select values+--+-- > makeSelect :: QueryExpr+-- > makeSelect = Select+-- >              {ann = emptyAnnotation+-- >              ,selDistinct = All+-- >              ,selSelectList = (SelectList emptyAnnotation [])+-- >              ,selTref = []+-- >              ,selWhere = Nothing+-- >              ,selGroupBy = []+-- >              ,selHaving = Nothing+-- >              ,selOrderBy = []+-- >              ,selLimit = Nothing+-- >              ,selOffset = Nothing+-- >              ,selOption = []}+--+-- On its own, it isn't valid syntax: to use it you have to replace+-- the select list at minimum+--+-- use something like this+--+-- > s = makeSelect {selSelectList = sl [se $ i "a"]+-- >                ,selTref = [tref "t"]}+-- >     where+-- >         a = emptyAnnotation+-- >         sl = SelectList a+-- >         se = SelExp a+-- >         i = Identifier a+-- >         tref t = Tref a (Name a [Nmc t])++makeSelect :: QueryExpr+makeSelect = Select+             {ann = emptyAnnotation+             ,selDistinct = All+             ,selSelectList = (SelectList emptyAnnotation [])+             ,selTref = []+             ,selWhere = Nothing+             ,selGroupBy = []+             ,selHaving = Nothing+             ,selOrderBy = []+             ,selLimit = Nothing+             ,selOffset = Nothing+             ,selOption = []}+{-# LINE 696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1021 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data CopyFromSource = CopyFilename String+                    | Stdin+                      deriving (Show,Eq,Typeable,Data)+data CopyToSource = CopyTable Name [NameComponent]+                  | CopyQuery QueryExpr+                    deriving (Show,Eq,Typeable,Data)++data CopyFromOption = CopyFromFormat String+                    | CopyFromDelimiter String+                    | CopyFromErrorLog String+                    | CopyFromErrorVerbosity Int+                    | CopyFromParsers String+                    | CopyFromDirectory+                    | CopyFromOffset Integer+                    | CopyFromLimit Integer+                    | CopyFromErrorThreshold Int+                    | CopyFromNewlineFormat String+                  deriving (Show,Eq,Typeable,Data)++data CopyToOption = CopyToFormat String+                  | CopyToDelimiter String+                  | CopyToErrorLog String+                  | CopyToErrorVerbosity Int+                  deriving (Show,Eq,Typeable,Data)++{-# LINE 725 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1099 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data TableOption =+       TableOptionStringVal [String] String+     | TableOptionNameVal [String] [Name]+     | TableOptionNumberVal [String] String+     | TableOptionKeywords [String]+       deriving (Show,Eq,Typeable,Data)++{-# LINE 736 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1122 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data TablePartitionDateTimeInterval = Year | Month | Day | Hour | Minute | Second | Millisecond+                                 deriving (Show,Eq,Typeable,Data)+{-# LINE 742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1185 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data SetValue+    = SetStr Annotation String+    | SetId Annotation String+    | SetNum Annotation Double+      deriving (Show,Eq,Typeable,Data)+++data TriggerWhen = TriggerBefore | TriggerAfter+                   deriving (Show,Eq,Typeable,Data)+data TriggerEvent = TInsert| TUpdate | TDelete | AntiTriggerEvent String+                    deriving (Show,Eq,Typeable,Data)+data TriggerFire = EachRow | EachStatement+                   deriving (Show,Eq,Typeable,Data)++data DropType = Table+              | Domain+              | View+              | Type+              | Database+              | User+              | Login+              | Schema+                deriving (Show,Eq,Typeable,Data)++data Cascade = Cascade | Restrict+               deriving (Show,Eq,Typeable,Data)++++data IfExists = Require | IfExists+                deriving (Show,Eq,Typeable,Data)+++data RestartIdentity = RestartIdentity | ContinueIdentity+                       deriving (Show,Eq,Typeable,Data)++{-# LINE 782 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1228 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data Replace = Replace | NoReplace+               deriving (Show,Eq,Typeable,Data)++data Volatility = Volatile | Stable | Immutable+                  deriving (Show,Eq,Typeable,Data)++-- todo: fix the fn body to support to support other languages+-- just as as string for now+-- probably change Language to be a string also++data Language = Sql | Plpgsql+                deriving (Show,Eq,Typeable,Data)+{-# LINE 798 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data RaiseType = RNotice | RException | RError+                 deriving (Show,Eq,Typeable,Data)++{-# LINE 805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++data QueryHint = QueryHintPartitionGroup | QueryHintColumnarHostGroup+                 deriving (Show,Eq,Typeable,Data)++{-# LINE 812 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}++{-# LINE 1387 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag" #-}++-- TODO: move this somewhere better+-- | run canonicalizeTypeName on all the TypeName nodes in an ast+{-canonicalizeTypeNames :: Data a => Dialect -> a -> a+canonicalizeTypeNames d =+   (transformBi $ \x ->+       case x of+         ScalarType s -> ScalarType $ canonicalizeTypeName d s+         x' -> x')+   . (transformBi $ \x ->+       case x of+         SimpleTypeName a tn -> SimpleTypeName a (c tn)+         PrecTypeName a tn i -> PrecTypeName a (c tn) i+         Prec2TypeName a tn i i1 -> Prec2TypeName a (c tn) i i1+         x' -> x')+   where+     c (Name a [Nmc nc]) = Name a [Nmc $ T.unpack $ canonicalizeTypeName d $ T.pack nc]+     c z = z-}++{-# LINE 834 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+-- AlterColumnAction -------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterColumnAction +         originalTree         : AlterColumnAction +   alternatives:+      alternative SetDataType:+         child ann            : Annotation +         child typ            : TypeName +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative SetNotNull:+         child ann            : Annotation +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative DropNotNull:+         child ann            : Annotation +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative SetDefault:+         child ann            : Annotation +         child def            : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative DropDefault:+         child ann            : Annotation +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AlterColumnAction = SetDataType (Annotation) (TypeName)+                       | SetNotNull (Annotation)+                       | DropNotNull (Annotation)+                       | SetDefault (Annotation) (ScalarExpr)+                       | DropDefault (Annotation)+                       deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AlterColumnAction :: AlterColumnAction ->+                         T_AlterColumnAction+_sem_AlterColumnAction (SetDataType _ann _typ) =+    (_sem_AlterColumnAction_SetDataType (_sem_Annotation _ann) (_sem_TypeName _typ))+_sem_AlterColumnAction (SetNotNull _ann) =+    (_sem_AlterColumnAction_SetNotNull (_sem_Annotation _ann))+_sem_AlterColumnAction (DropNotNull _ann) =+    (_sem_AlterColumnAction_DropNotNull (_sem_Annotation _ann))+_sem_AlterColumnAction (SetDefault _ann _def) =+    (_sem_AlterColumnAction_SetDefault (_sem_Annotation _ann) (_sem_ScalarExpr _def))+_sem_AlterColumnAction (DropDefault _ann) =+    (_sem_AlterColumnAction_DropDefault (_sem_Annotation _ann))+-- semantic domain+type T_AlterColumnAction = Catalog ->+                           TypeCheckFlags ->+                           (Maybe TypeExtra) ->+                           ( AlterColumnAction,AlterColumnAction)+data Inh_AlterColumnAction = Inh_AlterColumnAction {_cat_Inh_AlterColumnAction :: Catalog,_flags_Inh_AlterColumnAction :: TypeCheckFlags,_imCast_Inh_AlterColumnAction :: (Maybe TypeExtra)}+data Syn_AlterColumnAction = Syn_AlterColumnAction {_annotatedTree_Syn_AlterColumnAction :: AlterColumnAction,_originalTree_Syn_AlterColumnAction :: AlterColumnAction}+_wrap_AlterColumnAction :: T_AlterColumnAction ->+                          Inh_AlterColumnAction ->+                          Syn_AlterColumnAction+_wrap_AlterColumnAction sem (Inh_AlterColumnAction _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterColumnAction _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterColumnAction_SetDataType :: T_Annotation ->+                                     T_TypeName ->+                                     T_AlterColumnAction+_sem_AlterColumnAction_SetDataType ann_ typ_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterColumnAction+              _lhsOoriginalTree :: AlterColumnAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 24, column 37)+              _annOtpe =+                  ({-# LINE 24 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetDataType _annIannotatedTree _typIannotatedTree+                   {-# LINE 937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetDataType _annIoriginalTree _typIoriginalTree+                   {-# LINE 943 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 949 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 955 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 961 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 967 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 973 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 979 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 985 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 991 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterColumnAction_SetNotNull :: T_Annotation ->+                                    T_AlterColumnAction+_sem_AlterColumnAction_SetNotNull ann_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterColumnAction+              _lhsOoriginalTree :: AlterColumnAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 29, column 36)+              _annOtpe =+                  ({-# LINE 29 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetNotNull _annIannotatedTree+                   {-# LINE 1022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetNotNull _annIoriginalTree+                   {-# LINE 1028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterColumnAction_DropNotNull :: T_Annotation ->+                                     T_AlterColumnAction+_sem_AlterColumnAction_DropNotNull ann_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterColumnAction+              _lhsOoriginalTree :: AlterColumnAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 23, column 37)+              _annOtpe =+                  ({-# LINE 23 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1081 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropNotNull _annIannotatedTree+                   {-# LINE 1087 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropNotNull _annIoriginalTree+                   {-# LINE 1093 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1099 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterColumnAction_SetDefault :: T_Annotation ->+                                    T_ScalarExpr ->+                                    T_AlterColumnAction+_sem_AlterColumnAction_SetDefault ann_ def_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _defOdownEnv :: Environment+              _defOexpectedCast :: Bool+              _defOexpectedType :: (Maybe TypeExtra)+              _defOodbcFunction :: Bool+              _defOassignmentCastContext :: Bool+              _lhsOannotatedTree :: AlterColumnAction+              _lhsOoriginalTree :: AlterColumnAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _defOcat :: Catalog+              _defOflags :: TypeCheckFlags+              _defOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _defIannotatedTree :: ScalarExpr+              _defIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _defIoriginalTree :: ScalarExpr+              _defIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 25, column 36)+              _annOtpe =+                  ({-# LINE 25 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 26, column 36)+              _defOdownEnv =+                  ({-# LINE 26 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 1165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 27, column 36)+              _defOexpectedCast =+                  ({-# LINE 27 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 1171 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 28, column 36)+              _defOexpectedType =+                  ({-# LINE 28 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 1177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 131, column 18)+              _defOodbcFunction =+                  ({-# LINE 131 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 1183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 807, column 36)+              _defOassignmentCastContext =+                  ({-# LINE 807 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 1189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetDefault _annIannotatedTree _defIannotatedTree+                   {-# LINE 1195 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetDefault _annIoriginalTree _defIoriginalTree+                   {-# LINE 1201 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1207 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1213 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1219 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1225 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _defOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _defOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1243 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _defOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _defIannotatedTree,_defIcolExprs,_defIoriginalTree,_defIupType) =+                  def_ _defOassignmentCastContext _defOcat _defOdownEnv _defOexpectedCast _defOexpectedType _defOflags _defOimCast _defOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterColumnAction_DropDefault :: T_Annotation ->+                                     T_AlterColumnAction+_sem_AlterColumnAction_DropDefault ann_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterColumnAction+              _lhsOoriginalTree :: AlterColumnAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 22, column 37)+              _annOtpe =+                  ({-# LINE 22 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1274 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropDefault _annIannotatedTree+                   {-# LINE 1280 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropDefault _annIoriginalTree+                   {-# LINE 1286 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1292 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1298 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1304 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1310 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1316 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterDatabaseOperation --------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterDatabaseOperation +         originalTree         : AlterDatabaseOperation +   alternatives:+      alternative RenameDatabase:+         child ann            : Annotation +         child newName        : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AlterDatabaseOperation = RenameDatabase (Annotation) (Name)+                            deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AlterDatabaseOperation :: AlterDatabaseOperation ->+                              T_AlterDatabaseOperation+_sem_AlterDatabaseOperation (RenameDatabase _ann _newName) =+    (_sem_AlterDatabaseOperation_RenameDatabase (_sem_Annotation _ann) (_sem_Name _newName))+-- semantic domain+type T_AlterDatabaseOperation = Catalog ->+                                TypeCheckFlags ->+                                (Maybe TypeExtra) ->+                                ( AlterDatabaseOperation,AlterDatabaseOperation)+data Inh_AlterDatabaseOperation = Inh_AlterDatabaseOperation {_cat_Inh_AlterDatabaseOperation :: Catalog,_flags_Inh_AlterDatabaseOperation :: TypeCheckFlags,_imCast_Inh_AlterDatabaseOperation :: (Maybe TypeExtra)}+data Syn_AlterDatabaseOperation = Syn_AlterDatabaseOperation {_annotatedTree_Syn_AlterDatabaseOperation :: AlterDatabaseOperation,_originalTree_Syn_AlterDatabaseOperation :: AlterDatabaseOperation}+_wrap_AlterDatabaseOperation :: T_AlterDatabaseOperation ->+                               Inh_AlterDatabaseOperation ->+                               Syn_AlterDatabaseOperation+_wrap_AlterDatabaseOperation sem (Inh_AlterDatabaseOperation _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterDatabaseOperation _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterDatabaseOperation_RenameDatabase :: T_Annotation ->+                                             T_Name ->+                                             T_AlterDatabaseOperation+_sem_AlterDatabaseOperation_RenameDatabase ann_ newName_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _newNameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterDatabaseOperation+              _lhsOoriginalTree :: AlterDatabaseOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _newNameOcat :: Catalog+              _newNameOflags :: TypeCheckFlags+              _newNameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _newNameIannotatedTree :: Name+              _newNameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 30, column 45)+              _annOtpe =+                  ({-# LINE 30 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1384 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 31, column 45)+              _newNameOtpe =+                  ({-# LINE 31 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RenameDatabase _annIannotatedTree _newNameIannotatedTree+                   {-# LINE 1396 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RenameDatabase _annIoriginalTree _newNameIoriginalTree+                   {-# LINE 1402 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1408 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1414 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1420 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1426 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1432 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1438 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1444 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1450 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _newNameIannotatedTree,_newNameIoriginalTree) =+                  newName_ _newNameOcat _newNameOflags _newNameOimCast _newNameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterSchemaOperation ----------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterSchemaOperation +         originalTree         : AlterSchemaOperation +   alternatives:+      alternative AlterSchemaName:+         child ann            : Annotation +         child newName        : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSchemaOwner:+         child ann            : Annotation +         child newName        : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AlterSchemaOperation = AlterSchemaName (Annotation) (Name)+                          | AlterSchemaOwner (Annotation) (Name)+                          deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AlterSchemaOperation :: AlterSchemaOperation ->+                            T_AlterSchemaOperation+_sem_AlterSchemaOperation (AlterSchemaName _ann _newName) =+    (_sem_AlterSchemaOperation_AlterSchemaName (_sem_Annotation _ann) (_sem_Name _newName))+_sem_AlterSchemaOperation (AlterSchemaOwner _ann _newName) =+    (_sem_AlterSchemaOperation_AlterSchemaOwner (_sem_Annotation _ann) (_sem_Name _newName))+-- semantic domain+type T_AlterSchemaOperation = Catalog ->+                              TypeCheckFlags ->+                              (Maybe TypeExtra) ->+                              ( AlterSchemaOperation,AlterSchemaOperation)+data Inh_AlterSchemaOperation = Inh_AlterSchemaOperation {_cat_Inh_AlterSchemaOperation :: Catalog,_flags_Inh_AlterSchemaOperation :: TypeCheckFlags,_imCast_Inh_AlterSchemaOperation :: (Maybe TypeExtra)}+data Syn_AlterSchemaOperation = Syn_AlterSchemaOperation {_annotatedTree_Syn_AlterSchemaOperation :: AlterSchemaOperation,_originalTree_Syn_AlterSchemaOperation :: AlterSchemaOperation}+_wrap_AlterSchemaOperation :: T_AlterSchemaOperation ->+                             Inh_AlterSchemaOperation ->+                             Syn_AlterSchemaOperation+_wrap_AlterSchemaOperation sem (Inh_AlterSchemaOperation _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterSchemaOperation _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterSchemaOperation_AlterSchemaName :: T_Annotation ->+                                            T_Name ->+                                            T_AlterSchemaOperation+_sem_AlterSchemaOperation_AlterSchemaName ann_ newName_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSchemaOperation+              _lhsOoriginalTree :: AlterSchemaOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _newNameOcat :: Catalog+              _newNameOflags :: TypeCheckFlags+              _newNameOimCast :: (Maybe TypeExtra)+              _newNameOtpe :: (Either [TypeError] TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _newNameIannotatedTree :: Name+              _newNameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 32, column 44)+              _annOtpe =+                  ({-# LINE 32 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSchemaName _annIannotatedTree _newNameIannotatedTree+                   {-# LINE 1535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSchemaName _annIoriginalTree _newNameIoriginalTree+                   {-# LINE 1541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (chain)+              _newNameOtpe =+                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   error "missing rule: AlterSchemaOperation.AlterSchemaName.newName.tpe"+                   {-# LINE 1595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _newNameIannotatedTree,_newNameIoriginalTree) =+                  newName_ _newNameOcat _newNameOflags _newNameOimCast _newNameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSchemaOperation_AlterSchemaOwner :: T_Annotation ->+                                             T_Name ->+                                             T_AlterSchemaOperation+_sem_AlterSchemaOperation_AlterSchemaOwner ann_ newName_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _newNameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSchemaOperation+              _lhsOoriginalTree :: AlterSchemaOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _newNameOcat :: Catalog+              _newNameOflags :: TypeCheckFlags+              _newNameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _newNameIannotatedTree :: Name+              _newNameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 33, column 45)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1627 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 34, column 45)+              _newNameOtpe =+                  ({-# LINE 34 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1633 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSchemaOwner _annIannotatedTree _newNameIannotatedTree+                   {-# LINE 1639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSchemaOwner _annIoriginalTree _newNameIoriginalTree+                   {-# LINE 1645 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1651 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1657 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1663 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1669 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1675 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1681 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1687 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _newNameIannotatedTree,_newNameIoriginalTree) =+                  newName_ _newNameOcat _newNameOflags _newNameOimCast _newNameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterSequenceAction -----------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterSequenceAction +         originalTree         : AlterSequenceAction +   alternatives:+      alternative AlterSequenceIncrement:+         child ann            : Annotation +         child incr           : {Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequenceMin:+         child ann            : Annotation +         child min            : {Maybe Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequenceMax:+         child ann            : Annotation +         child max            : {Maybe Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequenceStart:+         child ann            : Annotation +         child start          : {Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequenceRestart:+         child ann            : Annotation +         child restart        : {Maybe Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequenceCache:+         child ann            : Annotation +         child cache          : {Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AlterSequenceAction = AlterSequenceIncrement (Annotation) (Integer)+                         | AlterSequenceMin (Annotation) ((Maybe Integer))+                         | AlterSequenceMax (Annotation) ((Maybe Integer))+                         | AlterSequenceStart (Annotation) (Integer)+                         | AlterSequenceRestart (Annotation) ((Maybe Integer))+                         | AlterSequenceCache (Annotation) (Integer)+                         deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AlterSequenceAction :: AlterSequenceAction ->+                           T_AlterSequenceAction+_sem_AlterSequenceAction (AlterSequenceIncrement _ann _incr) =+    (_sem_AlterSequenceAction_AlterSequenceIncrement (_sem_Annotation _ann) _incr)+_sem_AlterSequenceAction (AlterSequenceMin _ann _min) =+    (_sem_AlterSequenceAction_AlterSequenceMin (_sem_Annotation _ann) _min)+_sem_AlterSequenceAction (AlterSequenceMax _ann _max) =+    (_sem_AlterSequenceAction_AlterSequenceMax (_sem_Annotation _ann) _max)+_sem_AlterSequenceAction (AlterSequenceStart _ann _start) =+    (_sem_AlterSequenceAction_AlterSequenceStart (_sem_Annotation _ann) _start)+_sem_AlterSequenceAction (AlterSequenceRestart _ann _restart) =+    (_sem_AlterSequenceAction_AlterSequenceRestart (_sem_Annotation _ann) _restart)+_sem_AlterSequenceAction (AlterSequenceCache _ann _cache) =+    (_sem_AlterSequenceAction_AlterSequenceCache (_sem_Annotation _ann) _cache)+-- semantic domain+type T_AlterSequenceAction = Catalog ->+                             TypeCheckFlags ->+                             (Maybe TypeExtra) ->+                             ( AlterSequenceAction,AlterSequenceAction)+data Inh_AlterSequenceAction = Inh_AlterSequenceAction {_cat_Inh_AlterSequenceAction :: Catalog,_flags_Inh_AlterSequenceAction :: TypeCheckFlags,_imCast_Inh_AlterSequenceAction :: (Maybe TypeExtra)}+data Syn_AlterSequenceAction = Syn_AlterSequenceAction {_annotatedTree_Syn_AlterSequenceAction :: AlterSequenceAction,_originalTree_Syn_AlterSequenceAction :: AlterSequenceAction}+_wrap_AlterSequenceAction :: T_AlterSequenceAction ->+                            Inh_AlterSequenceAction ->+                            Syn_AlterSequenceAction+_wrap_AlterSequenceAction sem (Inh_AlterSequenceAction _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterSequenceAction _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterSequenceAction_AlterSequenceIncrement :: T_Annotation ->+                                                  Integer ->+                                                  T_AlterSequenceAction+_sem_AlterSequenceAction_AlterSequenceIncrement ann_ incr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceAction+              _lhsOoriginalTree :: AlterSequenceAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 35, column 50)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1802 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceIncrement _annIannotatedTree incr_+                   {-# LINE 1808 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceIncrement _annIoriginalTree incr_+                   {-# LINE 1814 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1820 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1844 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceAction_AlterSequenceMin :: T_Annotation ->+                                            (Maybe Integer) ->+                                            T_AlterSequenceAction+_sem_AlterSequenceAction_AlterSequenceMin ann_ min_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceAction+              _lhsOoriginalTree :: AlterSequenceAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 36, column 44)+              _annOtpe =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1868 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceMin _annIannotatedTree min_+                   {-# LINE 1874 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceMin _annIoriginalTree min_+                   {-# LINE 1880 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1886 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1892 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1898 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1904 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1910 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceAction_AlterSequenceMax :: T_Annotation ->+                                            (Maybe Integer) ->+                                            T_AlterSequenceAction+_sem_AlterSequenceAction_AlterSequenceMax ann_ max_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceAction+              _lhsOoriginalTree :: AlterSequenceAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 37, column 44)+              _annOtpe =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 1934 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceMax _annIannotatedTree max_+                   {-# LINE 1940 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceMax _annIoriginalTree max_+                   {-# LINE 1946 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 1952 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 1958 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 1964 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 1970 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 1976 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceAction_AlterSequenceStart :: T_Annotation ->+                                              Integer ->+                                              T_AlterSequenceAction+_sem_AlterSequenceAction_AlterSequenceStart ann_ start_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceAction+              _lhsOoriginalTree :: AlterSequenceAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 38, column 46)+              _annOtpe =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2000 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceStart _annIannotatedTree start_+                   {-# LINE 2006 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceStart _annIoriginalTree start_+                   {-# LINE 2012 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2018 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2024 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2030 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2036 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2042 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceAction_AlterSequenceRestart :: T_Annotation ->+                                                (Maybe Integer) ->+                                                T_AlterSequenceAction+_sem_AlterSequenceAction_AlterSequenceRestart ann_ restart_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceAction+              _lhsOoriginalTree :: AlterSequenceAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 39, column 48)+              _annOtpe =+                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2066 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceRestart _annIannotatedTree restart_+                   {-# LINE 2072 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceRestart _annIoriginalTree restart_+                   {-# LINE 2078 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2084 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2090 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceAction_AlterSequenceCache :: T_Annotation ->+                                              Integer ->+                                              T_AlterSequenceAction+_sem_AlterSequenceAction_AlterSequenceCache ann_ cache_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceAction+              _lhsOoriginalTree :: AlterSequenceAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 40, column 46)+              _annOtpe =+                  ({-# LINE 40 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceCache _annIannotatedTree cache_+                   {-# LINE 2138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceCache _annIoriginalTree cache_+                   {-# LINE 2144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2162 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2168 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterSequenceActionList -------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterSequenceActionList +         originalTree         : AlterSequenceActionList +   alternatives:+      alternative Cons:+         child hd             : AlterSequenceAction +         child tl             : AlterSequenceActionList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type AlterSequenceActionList = [AlterSequenceAction]+-- cata+_sem_AlterSequenceActionList :: AlterSequenceActionList ->+                               T_AlterSequenceActionList+_sem_AlterSequenceActionList list =+    (Prelude.foldr _sem_AlterSequenceActionList_Cons _sem_AlterSequenceActionList_Nil (Prelude.map _sem_AlterSequenceAction list))+-- semantic domain+type T_AlterSequenceActionList = Catalog ->+                                 TypeCheckFlags ->+                                 (Maybe TypeExtra) ->+                                 ( AlterSequenceActionList,AlterSequenceActionList)+data Inh_AlterSequenceActionList = Inh_AlterSequenceActionList {_cat_Inh_AlterSequenceActionList :: Catalog,_flags_Inh_AlterSequenceActionList :: TypeCheckFlags,_imCast_Inh_AlterSequenceActionList :: (Maybe TypeExtra)}+data Syn_AlterSequenceActionList = Syn_AlterSequenceActionList {_annotatedTree_Syn_AlterSequenceActionList :: AlterSequenceActionList,_originalTree_Syn_AlterSequenceActionList :: AlterSequenceActionList}+_wrap_AlterSequenceActionList :: T_AlterSequenceActionList ->+                                Inh_AlterSequenceActionList ->+                                Syn_AlterSequenceActionList+_wrap_AlterSequenceActionList sem (Inh_AlterSequenceActionList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterSequenceActionList _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterSequenceActionList_Cons :: T_AlterSequenceAction ->+                                    T_AlterSequenceActionList ->+                                    T_AlterSequenceActionList+_sem_AlterSequenceActionList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: AlterSequenceActionList+              _lhsOoriginalTree :: AlterSequenceActionList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: AlterSequenceAction+              _hdIoriginalTree :: AlterSequenceAction+              _tlIannotatedTree :: AlterSequenceActionList+              _tlIoriginalTree :: AlterSequenceActionList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 2243 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 2249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2255 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2261 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2273 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2279 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2285 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2291 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2297 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceActionList_Nil :: T_AlterSequenceActionList+_sem_AlterSequenceActionList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: AlterSequenceActionList+              _lhsOoriginalTree :: AlterSequenceActionList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 2315 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 2321 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2327 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2333 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterSequenceOperation --------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterSequenceOperation +         originalTree         : AlterSequenceOperation +   alternatives:+      alternative AlterSequenceOwned:+         child ann            : Annotation +         child owned          : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequenceRename:+         child ann            : Annotation +         child name           : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequenceActions:+         child ann            : Annotation +         child actions        : AlterSequenceActionList +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AlterSequenceOperation = AlterSequenceOwned (Annotation) (Name)+                            | AlterSequenceRename (Annotation) (Name)+                            | AlterSequenceActions (Annotation) (AlterSequenceActionList)+                            deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AlterSequenceOperation :: AlterSequenceOperation ->+                              T_AlterSequenceOperation+_sem_AlterSequenceOperation (AlterSequenceOwned _ann _owned) =+    (_sem_AlterSequenceOperation_AlterSequenceOwned (_sem_Annotation _ann) (_sem_Name _owned))+_sem_AlterSequenceOperation (AlterSequenceRename _ann _name) =+    (_sem_AlterSequenceOperation_AlterSequenceRename (_sem_Annotation _ann) (_sem_Name _name))+_sem_AlterSequenceOperation (AlterSequenceActions _ann _actions) =+    (_sem_AlterSequenceOperation_AlterSequenceActions (_sem_Annotation _ann) (_sem_AlterSequenceActionList _actions))+-- semantic domain+type T_AlterSequenceOperation = Catalog ->+                                TypeCheckFlags ->+                                (Maybe TypeExtra) ->+                                ( AlterSequenceOperation,AlterSequenceOperation)+data Inh_AlterSequenceOperation = Inh_AlterSequenceOperation {_cat_Inh_AlterSequenceOperation :: Catalog,_flags_Inh_AlterSequenceOperation :: TypeCheckFlags,_imCast_Inh_AlterSequenceOperation :: (Maybe TypeExtra)}+data Syn_AlterSequenceOperation = Syn_AlterSequenceOperation {_annotatedTree_Syn_AlterSequenceOperation :: AlterSequenceOperation,_originalTree_Syn_AlterSequenceOperation :: AlterSequenceOperation}+_wrap_AlterSequenceOperation :: T_AlterSequenceOperation ->+                               Inh_AlterSequenceOperation ->+                               Syn_AlterSequenceOperation+_wrap_AlterSequenceOperation sem (Inh_AlterSequenceOperation _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterSequenceOperation _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterSequenceOperation_AlterSequenceOwned :: T_Annotation ->+                                                 T_Name ->+                                                 T_AlterSequenceOperation+_sem_AlterSequenceOperation_AlterSequenceOwned ann_ owned_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _ownedOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceOperation+              _lhsOoriginalTree :: AlterSequenceOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _ownedOcat :: Catalog+              _ownedOflags :: TypeCheckFlags+              _ownedOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _ownedIannotatedTree :: Name+              _ownedIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 41, column 49)+              _annOtpe =+                  ({-# LINE 41 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 42, column 49)+              _ownedOtpe =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceOwned _annIannotatedTree _ownedIannotatedTree+                   {-# LINE 2429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceOwned _annIoriginalTree _ownedIoriginalTree+                   {-# LINE 2435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _ownedOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _ownedOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _ownedOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2483 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _ownedIannotatedTree,_ownedIoriginalTree) =+                  owned_ _ownedOcat _ownedOflags _ownedOimCast _ownedOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceOperation_AlterSequenceRename :: T_Annotation ->+                                                  T_Name ->+                                                  T_AlterSequenceOperation+_sem_AlterSequenceOperation_AlterSequenceRename ann_ name_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceOperation+              _lhsOoriginalTree :: AlterSequenceOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 43, column 50)+              _annOtpe =+                  ({-# LINE 43 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2515 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 44, column 50)+              _nameOtpe =+                  ({-# LINE 44 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2521 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceRename _annIannotatedTree _nameIannotatedTree+                   {-# LINE 2527 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceRename _annIoriginalTree _nameIoriginalTree+                   {-# LINE 2533 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2545 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2551 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2563 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2569 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2575 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2581 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterSequenceOperation_AlterSequenceActions :: T_Annotation ->+                                                   T_AlterSequenceActionList ->+                                                   T_AlterSequenceOperation+_sem_AlterSequenceOperation_AlterSequenceActions ann_ actions_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterSequenceOperation+              _lhsOoriginalTree :: AlterSequenceOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _actionsOcat :: Catalog+              _actionsOflags :: TypeCheckFlags+              _actionsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _actionsIannotatedTree :: AlterSequenceActionList+              _actionsIoriginalTree :: AlterSequenceActionList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 45, column 51)+              _annOtpe =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2612 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceActions _annIannotatedTree _actionsIannotatedTree+                   {-# LINE 2618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequenceActions _annIoriginalTree _actionsIoriginalTree+                   {-# LINE 2624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actionsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actionsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2666 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actionsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2672 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _actionsIannotatedTree,_actionsIoriginalTree) =+                  actions_ _actionsOcat _actionsOflags _actionsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterTableAction --------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterTableAction +         originalTree         : AlterTableAction +   alternatives:+      alternative AddColumn:+         child ann            : Annotation +         child att            : AttributeDef +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative DropColumn:+         child ann            : Annotation +         child nm             : {NameComponent}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterColumn:+         child ann            : Annotation +         child nm             : {NameComponent}+         child act            : AlterColumnAction +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AddConstraint:+         child ann            : Annotation +         child con            : Constraint +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AlterTableAction = AddColumn (Annotation) (AttributeDef)+                      | DropColumn (Annotation) (NameComponent)+                      | AlterColumn (Annotation) (NameComponent) (AlterColumnAction)+                      | AddConstraint (Annotation) (Constraint)+                      deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AlterTableAction :: AlterTableAction ->+                        T_AlterTableAction+_sem_AlterTableAction (AddColumn _ann _att) =+    (_sem_AlterTableAction_AddColumn (_sem_Annotation _ann) (_sem_AttributeDef _att))+_sem_AlterTableAction (DropColumn _ann _nm) =+    (_sem_AlterTableAction_DropColumn (_sem_Annotation _ann) _nm)+_sem_AlterTableAction (AlterColumn _ann _nm _act) =+    (_sem_AlterTableAction_AlterColumn (_sem_Annotation _ann) _nm (_sem_AlterColumnAction _act))+_sem_AlterTableAction (AddConstraint _ann _con) =+    (_sem_AlterTableAction_AddConstraint (_sem_Annotation _ann) (_sem_Constraint _con))+-- semantic domain+type T_AlterTableAction = Catalog ->+                          TypeCheckFlags ->+                          (Maybe TypeExtra) ->+                          ( AlterTableAction,AlterTableAction)+data Inh_AlterTableAction = Inh_AlterTableAction {_cat_Inh_AlterTableAction :: Catalog,_flags_Inh_AlterTableAction :: TypeCheckFlags,_imCast_Inh_AlterTableAction :: (Maybe TypeExtra)}+data Syn_AlterTableAction = Syn_AlterTableAction {_annotatedTree_Syn_AlterTableAction :: AlterTableAction,_originalTree_Syn_AlterTableAction :: AlterTableAction}+_wrap_AlterTableAction :: T_AlterTableAction ->+                         Inh_AlterTableAction ->+                         Syn_AlterTableAction+_wrap_AlterTableAction sem (Inh_AlterTableAction _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterTableAction _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterTableAction_AddColumn :: T_Annotation ->+                                  T_AttributeDef ->+                                  T_AlterTableAction+_sem_AlterTableAction_AddColumn ann_ att_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterTableAction+              _lhsOoriginalTree :: AlterTableAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _attOcat :: Catalog+              _attOflags :: TypeCheckFlags+              _attOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _attIannotatedTree :: AttributeDef+              _attIoriginalTree :: AttributeDef+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 46, column 34)+              _annOtpe =+                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2769 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AddColumn _annIannotatedTree _attIannotatedTree+                   {-# LINE 2775 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AddColumn _annIoriginalTree _attIoriginalTree+                   {-# LINE 2781 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2787 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2799 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2805 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2811 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2817 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2823 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2829 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _attIannotatedTree,_attIoriginalTree) =+                  att_ _attOcat _attOflags _attOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterTableAction_DropColumn :: T_Annotation ->+                                   NameComponent ->+                                   T_AlterTableAction+_sem_AlterTableAction_DropColumn ann_ nm_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterTableAction+              _lhsOoriginalTree :: AlterTableAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 49, column 35)+              _annOtpe =+                  ({-# LINE 49 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropColumn _annIannotatedTree nm_+                   {-# LINE 2861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropColumn _annIoriginalTree nm_+                   {-# LINE 2867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterTableAction_AlterColumn :: T_Annotation ->+                                    NameComponent ->+                                    T_AlterColumnAction ->+                                    T_AlterTableAction+_sem_AlterTableAction_AlterColumn ann_ nm_ act_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterTableAction+              _lhsOoriginalTree :: AlterTableAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _actOcat :: Catalog+              _actOflags :: TypeCheckFlags+              _actOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _actIannotatedTree :: AlterColumnAction+              _actIoriginalTree :: AlterColumnAction+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 48, column 36)+              _annOtpe =+                  ({-# LINE 48 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 2927 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterColumn _annIannotatedTree nm_ _actIannotatedTree+                   {-# LINE 2933 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterColumn _annIoriginalTree nm_ _actIoriginalTree+                   {-# LINE 2939 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 2945 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 2951 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2957 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2963 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2969 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 2975 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 2981 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 2987 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _actIannotatedTree,_actIoriginalTree) =+                  act_ _actOcat _actOflags _actOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterTableAction_AddConstraint :: T_Annotation ->+                                      T_Constraint ->+                                      T_AlterTableAction+_sem_AlterTableAction_AddConstraint ann_ con_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterTableAction+              _lhsOoriginalTree :: AlterTableAction+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _conOcat :: Catalog+              _conOflags :: TypeCheckFlags+              _conOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _conIannotatedTree :: Constraint+              _conIoriginalTree :: Constraint+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 47, column 38)+              _annOtpe =+                  ({-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 3018 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AddConstraint _annIannotatedTree _conIannotatedTree+                   {-# LINE 3024 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AddConstraint _annIoriginalTree _conIoriginalTree+                   {-# LINE 3030 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3036 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3042 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3048 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3054 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3060 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _conOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3066 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _conOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3072 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _conOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3078 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _conIannotatedTree,_conIoriginalTree) =+                  con_ _conOcat _conOflags _conOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterTableActionList ----------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterTableActionList +         originalTree         : AlterTableActionList +   alternatives:+      alternative Cons:+         child hd             : AlterTableAction +         child tl             : AlterTableActionList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type AlterTableActionList = [AlterTableAction]+-- cata+_sem_AlterTableActionList :: AlterTableActionList ->+                            T_AlterTableActionList+_sem_AlterTableActionList list =+    (Prelude.foldr _sem_AlterTableActionList_Cons _sem_AlterTableActionList_Nil (Prelude.map _sem_AlterTableAction list))+-- semantic domain+type T_AlterTableActionList = Catalog ->+                              TypeCheckFlags ->+                              (Maybe TypeExtra) ->+                              ( AlterTableActionList,AlterTableActionList)+data Inh_AlterTableActionList = Inh_AlterTableActionList {_cat_Inh_AlterTableActionList :: Catalog,_flags_Inh_AlterTableActionList :: TypeCheckFlags,_imCast_Inh_AlterTableActionList :: (Maybe TypeExtra)}+data Syn_AlterTableActionList = Syn_AlterTableActionList {_annotatedTree_Syn_AlterTableActionList :: AlterTableActionList,_originalTree_Syn_AlterTableActionList :: AlterTableActionList}+_wrap_AlterTableActionList :: T_AlterTableActionList ->+                             Inh_AlterTableActionList ->+                             Syn_AlterTableActionList+_wrap_AlterTableActionList sem (Inh_AlterTableActionList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterTableActionList _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterTableActionList_Cons :: T_AlterTableAction ->+                                 T_AlterTableActionList ->+                                 T_AlterTableActionList+_sem_AlterTableActionList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: AlterTableActionList+              _lhsOoriginalTree :: AlterTableActionList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: AlterTableAction+              _hdIoriginalTree :: AlterTableAction+              _tlIannotatedTree :: AlterTableActionList+              _tlIoriginalTree :: AlterTableActionList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 3149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 3155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3161 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3167 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3179 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3185 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3191 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3197 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3203 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterTableActionList_Nil :: T_AlterTableActionList+_sem_AlterTableActionList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: AlterTableActionList+              _lhsOoriginalTree :: AlterTableActionList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 3221 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 3227 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3233 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3239 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AlterTableOperation -----------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AlterTableOperation +         originalTree         : AlterTableOperation +   alternatives:+      alternative RenameTable:+         child ann            : Annotation +         child newName        : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative RenameColumn:+         child ann            : Annotation +         child oldName        : {NameComponent}+         child newName        : {NameComponent}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterTableActions:+         child ann            : Annotation +         child actions        : AlterTableActionList +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AlterTableOperation = RenameTable (Annotation) (Name)+                         | RenameColumn (Annotation) (NameComponent) (NameComponent)+                         | AlterTableActions (Annotation) (AlterTableActionList)+                         deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AlterTableOperation :: AlterTableOperation ->+                           T_AlterTableOperation+_sem_AlterTableOperation (RenameTable _ann _newName) =+    (_sem_AlterTableOperation_RenameTable (_sem_Annotation _ann) (_sem_Name _newName))+_sem_AlterTableOperation (RenameColumn _ann _oldName _newName) =+    (_sem_AlterTableOperation_RenameColumn (_sem_Annotation _ann) _oldName _newName)+_sem_AlterTableOperation (AlterTableActions _ann _actions) =+    (_sem_AlterTableOperation_AlterTableActions (_sem_Annotation _ann) (_sem_AlterTableActionList _actions))+-- semantic domain+type T_AlterTableOperation = Catalog ->+                             TypeCheckFlags ->+                             (Maybe TypeExtra) ->+                             ( AlterTableOperation,AlterTableOperation)+data Inh_AlterTableOperation = Inh_AlterTableOperation {_cat_Inh_AlterTableOperation :: Catalog,_flags_Inh_AlterTableOperation :: TypeCheckFlags,_imCast_Inh_AlterTableOperation :: (Maybe TypeExtra)}+data Syn_AlterTableOperation = Syn_AlterTableOperation {_annotatedTree_Syn_AlterTableOperation :: AlterTableOperation,_originalTree_Syn_AlterTableOperation :: AlterTableOperation}+_wrap_AlterTableOperation :: T_AlterTableOperation ->+                            Inh_AlterTableOperation ->+                            Syn_AlterTableOperation+_wrap_AlterTableOperation sem (Inh_AlterTableOperation _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AlterTableOperation _lhsOannotatedTree _lhsOoriginalTree))+_sem_AlterTableOperation_RenameTable :: T_Annotation ->+                                       T_Name ->+                                       T_AlterTableOperation+_sem_AlterTableOperation_RenameTable ann_ newName_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _newNameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterTableOperation+              _lhsOoriginalTree :: AlterTableOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _newNameOcat :: Catalog+              _newNameOflags :: TypeCheckFlags+              _newNameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _newNameIannotatedTree :: Name+              _newNameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 52, column 39)+              _annOtpe =+                  ({-# LINE 52 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 3324 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 53, column 39)+              _newNameOtpe =+                  ({-# LINE 53 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 3330 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RenameTable _annIannotatedTree _newNameIannotatedTree+                   {-# LINE 3336 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RenameTable _annIoriginalTree _newNameIoriginalTree+                   {-# LINE 3342 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3348 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3354 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3384 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _newNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _newNameIannotatedTree,_newNameIoriginalTree) =+                  newName_ _newNameOcat _newNameOflags _newNameOimCast _newNameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterTableOperation_RenameColumn :: T_Annotation ->+                                        NameComponent ->+                                        NameComponent ->+                                        T_AlterTableOperation+_sem_AlterTableOperation_RenameColumn ann_ oldName_ newName_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterTableOperation+              _lhsOoriginalTree :: AlterTableOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 51, column 40)+              _annOtpe =+                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 3417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RenameColumn _annIannotatedTree oldName_ newName_+                   {-# LINE 3423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RenameColumn _annIoriginalTree oldName_ newName_+                   {-# LINE 3429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AlterTableOperation_AlterTableActions :: T_Annotation ->+                                             T_AlterTableActionList ->+                                             T_AlterTableOperation+_sem_AlterTableOperation_AlterTableActions ann_ actions_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AlterTableOperation+              _lhsOoriginalTree :: AlterTableOperation+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _actionsOcat :: Catalog+              _actionsOflags :: TypeCheckFlags+              _actionsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _actionsIannotatedTree :: AlterTableActionList+              _actionsIoriginalTree :: AlterTableActionList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 50, column 45)+              _annOtpe =+                  ({-# LINE 50 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 3488 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterTableActions _annIannotatedTree _actionsIannotatedTree+                   {-# LINE 3494 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterTableActions _annIoriginalTree _actionsIoriginalTree+                   {-# LINE 3500 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3506 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3524 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3530 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actionsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3536 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actionsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3542 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _actionsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3548 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _actionsIannotatedTree,_actionsIoriginalTree) =+                  actions_ _actionsOcat _actionsOflags _actionsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- Annotation --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+         tpe                  : Either [TypeError] TypeExtra+      synthesized attributes:+         annotatedTree        : Annotation +         originalTree         : Annotation +   alternatives:+      alternative Annotation:+         child anSrc          : {Maybe SourcePosition}+         child anType         : {Maybe T.TypeExtra}+         child anErrs         : {[T.TypeError]}+         child anImplicitCast : {Maybe T.TypeExtra}+         child anCatUpd       : {[C.CatalogUpdate]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}++-- | Annotation type - one of these is attached to most of the+-- data types used in the ast.+-- the fields in order are:+data Annotation = Annotation {+                             -- | source position for this node+                             anSrc :: ( Maybe SourcePosition)+                             -- | type of the node, 'Nothing' if the tree hasn't been typechecked or if a type error elsewhere prevents determining this node's type+                             ,anType :: ( Maybe T.TypeExtra)+                             -- | any type errors+                             ,anErrs :: ( [T.TypeError])+                             -- | if an implicit cast is needed between this node an its parent, this the target type of cast. If no implicit cast is needed, this is Nothing+                             ,anImplicitCast :: ( Maybe T.TypeExtra)+                             -- | any catalog updates that a statement produces, used only for ddl Statements+                             ,anCatUpd :: ( [C.CatalogUpdate])++    } deriving (Eq,Show,Data,Typeable)++-- cata+_sem_Annotation :: Annotation ->+                  T_Annotation+_sem_Annotation (Annotation _anSrc _anType _anErrs _anImplicitCast _anCatUpd) =+    (_sem_Annotation_Annotation _anSrc _anType _anErrs _anImplicitCast _anCatUpd)+-- semantic domain+type T_Annotation = Catalog ->+                    TypeCheckFlags ->+                    (Maybe TypeExtra) ->+                    (Either [TypeError] TypeExtra) ->+                    ( Annotation,Annotation)+data Inh_Annotation = Inh_Annotation {_cat_Inh_Annotation :: Catalog,_flags_Inh_Annotation :: TypeCheckFlags,_imCast_Inh_Annotation :: (Maybe TypeExtra),_tpe_Inh_Annotation :: (Either [TypeError] TypeExtra)}+data Syn_Annotation = Syn_Annotation {_annotatedTree_Syn_Annotation :: Annotation,_originalTree_Syn_Annotation :: Annotation}+_wrap_Annotation :: T_Annotation ->+                   Inh_Annotation ->+                   Syn_Annotation+_wrap_Annotation sem (Inh_Annotation _lhsIcat _lhsIflags _lhsIimCast _lhsItpe) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast _lhsItpe+     in  (Syn_Annotation _lhsOannotatedTree _lhsOoriginalTree))+_sem_Annotation_Annotation :: (Maybe SourcePosition) ->+                             (Maybe T.TypeExtra) ->+                             ([T.TypeError]) ->+                             (Maybe T.TypeExtra) ->+                             ([C.CatalogUpdate]) ->+                             T_Annotation+_sem_Annotation_Annotation anSrc_ anType_ anErrs_ anImplicitCast_ anCatUpd_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast+       _lhsItpe ->+         (let _lhsOannotatedTree :: Annotation+              _lhsOoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag"(line 140, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 140 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   let t = either (const Nothing) Just _lhsItpe+                       es = either id (const []) _lhsItpe+                   in Annotation anSrc_ t es _lhsIimCast anCatUpd_+                   {-# LINE 3617 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Annotation anSrc_ anType_ anErrs_ anImplicitCast_ anCatUpd_+                   {-# LINE 3623 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Annotation anSrc_ anType_ anErrs_ anImplicitCast_ anCatUpd_+                   {-# LINE 3629 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3635 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AttributeDef ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AttributeDef +         originalTree         : AttributeDef +   alternatives:+      alternative AttributeDef:+         child ann            : Annotation +         child name           : {NameComponent}+         child typ            : TypeName +         child cons           : RowConstraintList +         child options        : {[TableOption]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data AttributeDef = AttributeDef (Annotation) (NameComponent) (TypeName) (RowConstraintList) (([TableOption]))+                  deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_AttributeDef :: AttributeDef ->+                    T_AttributeDef+_sem_AttributeDef (AttributeDef _ann _name _typ _cons _options) =+    (_sem_AttributeDef_AttributeDef (_sem_Annotation _ann) _name (_sem_TypeName _typ) (_sem_RowConstraintList _cons) _options)+-- semantic domain+type T_AttributeDef = Catalog ->+                      TypeCheckFlags ->+                      (Maybe TypeExtra) ->+                      ( AttributeDef,AttributeDef)+data Inh_AttributeDef = Inh_AttributeDef {_cat_Inh_AttributeDef :: Catalog,_flags_Inh_AttributeDef :: TypeCheckFlags,_imCast_Inh_AttributeDef :: (Maybe TypeExtra)}+data Syn_AttributeDef = Syn_AttributeDef {_annotatedTree_Syn_AttributeDef :: AttributeDef,_originalTree_Syn_AttributeDef :: AttributeDef}+_wrap_AttributeDef :: T_AttributeDef ->+                     Inh_AttributeDef ->+                     Syn_AttributeDef+_wrap_AttributeDef sem (Inh_AttributeDef _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AttributeDef _lhsOannotatedTree _lhsOoriginalTree))+_sem_AttributeDef_AttributeDef :: T_Annotation ->+                                 NameComponent ->+                                 T_TypeName ->+                                 T_RowConstraintList ->+                                 ([TableOption]) ->+                                 T_AttributeDef+_sem_AttributeDef_AttributeDef ann_ name_ typ_ cons_ options_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: AttributeDef+              _lhsOoriginalTree :: AttributeDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _consOcat :: Catalog+              _consOflags :: TypeCheckFlags+              _consOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              _consIannotatedTree :: RowConstraintList+              _consIoriginalTree :: RowConstraintList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 54, column 33)+              _annOtpe =+                  ({-# LINE 54 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 3712 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AttributeDef _annIannotatedTree name_ _typIannotatedTree _consIannotatedTree options_+                   {-# LINE 3718 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AttributeDef _annIoriginalTree name_ _typIoriginalTree _consIoriginalTree options_+                   {-# LINE 3724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3730 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3736 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3754 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3760 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _consOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _consOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3784 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _consOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3790 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+              ( _consIannotatedTree,_consIoriginalTree) =+                  cons_ _consOcat _consOflags _consOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- AttributeDefList --------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : AttributeDefList +         originalTree         : AttributeDefList +   alternatives:+      alternative Cons:+         child hd             : AttributeDef +         child tl             : AttributeDefList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type AttributeDefList = [AttributeDef]+-- cata+_sem_AttributeDefList :: AttributeDefList ->+                        T_AttributeDefList+_sem_AttributeDefList list =+    (Prelude.foldr _sem_AttributeDefList_Cons _sem_AttributeDefList_Nil (Prelude.map _sem_AttributeDef list))+-- semantic domain+type T_AttributeDefList = Catalog ->+                          TypeCheckFlags ->+                          (Maybe TypeExtra) ->+                          ( AttributeDefList,AttributeDefList)+data Inh_AttributeDefList = Inh_AttributeDefList {_cat_Inh_AttributeDefList :: Catalog,_flags_Inh_AttributeDefList :: TypeCheckFlags,_imCast_Inh_AttributeDefList :: (Maybe TypeExtra)}+data Syn_AttributeDefList = Syn_AttributeDefList {_annotatedTree_Syn_AttributeDefList :: AttributeDefList,_originalTree_Syn_AttributeDefList :: AttributeDefList}+_wrap_AttributeDefList :: T_AttributeDefList ->+                         Inh_AttributeDefList ->+                         Syn_AttributeDefList+_wrap_AttributeDefList sem (Inh_AttributeDefList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_AttributeDefList _lhsOannotatedTree _lhsOoriginalTree))+_sem_AttributeDefList_Cons :: T_AttributeDef ->+                             T_AttributeDefList ->+                             T_AttributeDefList+_sem_AttributeDefList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: AttributeDefList+              _lhsOoriginalTree :: AttributeDefList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: AttributeDef+              _hdIoriginalTree :: AttributeDef+              _tlIannotatedTree :: AttributeDefList+              _tlIoriginalTree :: AttributeDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 3863 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 3869 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3875 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3881 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3887 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3893 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3899 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 3905 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 3911 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 3917 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_AttributeDefList_Nil :: T_AttributeDefList+_sem_AttributeDefList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: AttributeDefList+              _lhsOoriginalTree :: AttributeDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 3935 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 3941 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 3947 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 3953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- CaseScalarExprListScalarExprPair ----------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+         thenExpectedType     : Maybe TypeExtra+         whenExpectedType     : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : CaseScalarExprListScalarExprPair +         originalTree         : CaseScalarExprListScalarExprPair +         thenType             : Maybe TypeExtra+         upTypes              : [Maybe TypeExtra]+         whenTypes            : [Maybe TypeExtra]+   alternatives:+      alternative Tuple:+         child x1             : ScalarExprList +         child x2             : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type CaseScalarExprListScalarExprPair = ( ScalarExprList,ScalarExpr)+-- cata+_sem_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair ->+                                        T_CaseScalarExprListScalarExprPair+_sem_CaseScalarExprListScalarExprPair ( x1,x2) =+    (_sem_CaseScalarExprListScalarExprPair_Tuple (_sem_ScalarExprList x1) (_sem_ScalarExpr x2))+-- semantic domain+type T_CaseScalarExprListScalarExprPair = Catalog ->+                                          Environment ->+                                          TypeCheckFlags ->+                                          (Maybe TypeExtra) ->+                                          (Maybe TypeExtra) ->+                                          (Maybe TypeExtra) ->+                                          ( CaseScalarExprListScalarExprPair,CaseScalarExprListScalarExprPair,(Maybe TypeExtra),([Maybe TypeExtra]),([Maybe TypeExtra]))+data Inh_CaseScalarExprListScalarExprPair = Inh_CaseScalarExprListScalarExprPair {_cat_Inh_CaseScalarExprListScalarExprPair :: Catalog,_downEnv_Inh_CaseScalarExprListScalarExprPair :: Environment,_flags_Inh_CaseScalarExprListScalarExprPair :: TypeCheckFlags,_imCast_Inh_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra),_thenExpectedType_Inh_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra),_whenExpectedType_Inh_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra)}+data Syn_CaseScalarExprListScalarExprPair = Syn_CaseScalarExprListScalarExprPair {_annotatedTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair,_originalTree_Syn_CaseScalarExprListScalarExprPair :: CaseScalarExprListScalarExprPair,_thenType_Syn_CaseScalarExprListScalarExprPair :: (Maybe TypeExtra),_upTypes_Syn_CaseScalarExprListScalarExprPair :: ([Maybe TypeExtra]),_whenTypes_Syn_CaseScalarExprListScalarExprPair :: ([Maybe TypeExtra])}+_wrap_CaseScalarExprListScalarExprPair :: T_CaseScalarExprListScalarExprPair ->+                                         Inh_CaseScalarExprListScalarExprPair ->+                                         Syn_CaseScalarExprListScalarExprPair+_wrap_CaseScalarExprListScalarExprPair sem (Inh_CaseScalarExprListScalarExprPair _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenType,_lhsOupTypes,_lhsOwhenTypes) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType+     in  (Syn_CaseScalarExprListScalarExprPair _lhsOannotatedTree _lhsOoriginalTree _lhsOthenType _lhsOupTypes _lhsOwhenTypes))+_sem_CaseScalarExprListScalarExprPair_Tuple :: T_ScalarExprList ->+                                              T_ScalarExpr ->+                                              T_CaseScalarExprListScalarExprPair+_sem_CaseScalarExprListScalarExprPair_Tuple x1_ x2_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast+       _lhsIthenExpectedType+       _lhsIwhenExpectedType ->+         (let _x2OodbcFunction :: Bool+              _lhsOwhenTypes :: ([Maybe TypeExtra])+              _lhsOthenType :: (Maybe TypeExtra)+              _x1OexpectedTypes :: ([TypeExtra])+              _x1OexpectedCast :: Bool+              _x2OexpectedType :: (Maybe TypeExtra)+              _x2OexpectedCast :: Bool+              _x1OassignmentCastContext :: Bool+              _x2OassignmentCastContext :: Bool+              _lhsOannotatedTree :: CaseScalarExprListScalarExprPair+              _lhsOoriginalTree :: CaseScalarExprListScalarExprPair+              _lhsOupTypes :: ([Maybe TypeExtra])+              _x1Ocat :: Catalog+              _x1OdownEnv :: Environment+              _x1Oflags :: TypeCheckFlags+              _x1OimCast :: (Maybe TypeExtra)+              _x2Ocat :: Catalog+              _x2OdownEnv :: Environment+              _x2Oflags :: TypeCheckFlags+              _x2OimCast :: (Maybe TypeExtra)+              _x1IannotatedTree :: ScalarExprList+              _x1IoriginalTree :: ScalarExprList+              _x1IupTypes :: ([Maybe TypeExtra])+              _x2IannotatedTree :: ScalarExpr+              _x2IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _x2IoriginalTree :: ScalarExpr+              _x2IupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 134, column 13)+              _x2OodbcFunction =+                  ({-# LINE 134 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 4043 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 550, column 13)+              _lhsOwhenTypes =+                  ({-# LINE 550 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _x1IupTypes+                   {-# LINE 4049 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 551, column 13)+              _lhsOthenType =+                  ({-# LINE 551 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _x2IupType+                   {-# LINE 4055 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 606, column 11)+              _x1OexpectedTypes =+                  ({-# LINE 606 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe [] repeat _lhsIwhenExpectedType+                   {-# LINE 4061 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 607, column 11)+              _x1OexpectedCast =+                  ({-# LINE 607 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 4067 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 608, column 11)+              _x2OexpectedType =+                  ({-# LINE 608 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIthenExpectedType+                   {-# LINE 4073 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 609, column 11)+              _x2OexpectedCast =+                  ({-# LINE 609 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   True+                   {-# LINE 4079 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 808, column 46)+              _x1OassignmentCastContext =+                  ({-# LINE 808 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 4085 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 809, column 46)+              _x2OassignmentCastContext =+                  ({-# LINE 809 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 4091 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IannotatedTree,_x2IannotatedTree)+                   {-# LINE 4097 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IoriginalTree,_x2IoriginalTree)+                   {-# LINE 4103 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4109 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4115 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOupTypes =+                  ({-# LINE 555 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _x1IupTypes+                   {-# LINE 4121 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4127 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1OdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 4133 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4139 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4145 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4151 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2OdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 4157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4163 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4169 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _x1IannotatedTree,_x1IoriginalTree,_x1IupTypes) =+                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedTypes _x1Oflags _x1OimCast+              ( _x2IannotatedTree,_x2IcolExprs,_x2IoriginalTree,_x2IupType) =+                  x2_ _x2OassignmentCastContext _x2Ocat _x2OdownEnv _x2OexpectedCast _x2OexpectedType _x2Oflags _x2OimCast _x2OodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenType,_lhsOupTypes,_lhsOwhenTypes)))+-- CaseScalarExprListScalarExprPairList ------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+         thenExpectedType     : Maybe TypeExtra+         whenExpectedType     : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : CaseScalarExprListScalarExprPairList +         originalTree         : CaseScalarExprListScalarExprPairList +         thenTypes            : [Maybe TypeExtra]+         upTypes              : [Maybe TypeExtra]+         whenTypes            : [[Maybe TypeExtra]]+   alternatives:+      alternative Cons:+         child hd             : CaseScalarExprListScalarExprPair +         child tl             : CaseScalarExprListScalarExprPairList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type CaseScalarExprListScalarExprPairList = [CaseScalarExprListScalarExprPair]+-- cata+_sem_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList ->+                                            T_CaseScalarExprListScalarExprPairList+_sem_CaseScalarExprListScalarExprPairList list =+    (Prelude.foldr _sem_CaseScalarExprListScalarExprPairList_Cons _sem_CaseScalarExprListScalarExprPairList_Nil (Prelude.map _sem_CaseScalarExprListScalarExprPair list))+-- semantic domain+type T_CaseScalarExprListScalarExprPairList = Catalog ->+                                              Environment ->+                                              TypeCheckFlags ->+                                              (Maybe TypeExtra) ->+                                              (Maybe TypeExtra) ->+                                              (Maybe TypeExtra) ->+                                              ( CaseScalarExprListScalarExprPairList,CaseScalarExprListScalarExprPairList,([Maybe TypeExtra]),([Maybe TypeExtra]),([[Maybe TypeExtra]]))+data Inh_CaseScalarExprListScalarExprPairList = Inh_CaseScalarExprListScalarExprPairList {_cat_Inh_CaseScalarExprListScalarExprPairList :: Catalog,_downEnv_Inh_CaseScalarExprListScalarExprPairList :: Environment,_flags_Inh_CaseScalarExprListScalarExprPairList :: TypeCheckFlags,_imCast_Inh_CaseScalarExprListScalarExprPairList :: (Maybe TypeExtra),_thenExpectedType_Inh_CaseScalarExprListScalarExprPairList :: (Maybe TypeExtra),_whenExpectedType_Inh_CaseScalarExprListScalarExprPairList :: (Maybe TypeExtra)}+data Syn_CaseScalarExprListScalarExprPairList = Syn_CaseScalarExprListScalarExprPairList {_annotatedTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList,_originalTree_Syn_CaseScalarExprListScalarExprPairList :: CaseScalarExprListScalarExprPairList,_thenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([Maybe TypeExtra]),_upTypes_Syn_CaseScalarExprListScalarExprPairList :: ([Maybe TypeExtra]),_whenTypes_Syn_CaseScalarExprListScalarExprPairList :: ([[Maybe TypeExtra]])}+_wrap_CaseScalarExprListScalarExprPairList :: T_CaseScalarExprListScalarExprPairList ->+                                             Inh_CaseScalarExprListScalarExprPairList ->+                                             Syn_CaseScalarExprListScalarExprPairList+_wrap_CaseScalarExprListScalarExprPairList sem (Inh_CaseScalarExprListScalarExprPairList _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOupTypes,_lhsOwhenTypes) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast _lhsIthenExpectedType _lhsIwhenExpectedType+     in  (Syn_CaseScalarExprListScalarExprPairList _lhsOannotatedTree _lhsOoriginalTree _lhsOthenTypes _lhsOupTypes _lhsOwhenTypes))+_sem_CaseScalarExprListScalarExprPairList_Cons :: T_CaseScalarExprListScalarExprPair ->+                                                 T_CaseScalarExprListScalarExprPairList ->+                                                 T_CaseScalarExprListScalarExprPairList+_sem_CaseScalarExprListScalarExprPairList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast+       _lhsIthenExpectedType+       _lhsIwhenExpectedType ->+         (let _lhsOwhenTypes :: ([[Maybe TypeExtra]])+              _lhsOthenTypes :: ([Maybe TypeExtra])+              _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList+              _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList+              _lhsOupTypes :: ([Maybe TypeExtra])+              _hdOcat :: Catalog+              _hdOdownEnv :: Environment+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _hdOthenExpectedType :: (Maybe TypeExtra)+              _hdOwhenExpectedType :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOdownEnv :: Environment+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _tlOthenExpectedType :: (Maybe TypeExtra)+              _tlOwhenExpectedType :: (Maybe TypeExtra)+              _hdIannotatedTree :: CaseScalarExprListScalarExprPair+              _hdIoriginalTree :: CaseScalarExprListScalarExprPair+              _hdIthenType :: (Maybe TypeExtra)+              _hdIupTypes :: ([Maybe TypeExtra])+              _hdIwhenTypes :: ([Maybe TypeExtra])+              _tlIannotatedTree :: CaseScalarExprListScalarExprPairList+              _tlIoriginalTree :: CaseScalarExprListScalarExprPairList+              _tlIthenTypes :: ([Maybe TypeExtra])+              _tlIupTypes :: ([Maybe TypeExtra])+              _tlIwhenTypes :: ([[Maybe TypeExtra]])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 539, column 10)+              _lhsOwhenTypes =+                  ({-# LINE 539 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _hdIwhenTypes : _tlIwhenTypes+                   {-# LINE 4267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 540, column 10)+              _lhsOthenTypes =+                  ({-# LINE 540 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _hdIthenType : _tlIthenTypes+                   {-# LINE 4273 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 4279 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 4285 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4291 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4297 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOupTypes =+                  ({-# LINE 555 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tlIupTypes+                   {-# LINE 4303 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4309 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOdownEnv =+                  ({-# LINE 554 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 4315 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4321 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4327 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOthenExpectedType =+                  ({-# LINE 602 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIthenExpectedType+                   {-# LINE 4333 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOwhenExpectedType =+                  ({-# LINE 603 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIwhenExpectedType+                   {-# LINE 4339 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4345 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOdownEnv =+                  ({-# LINE 554 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 4351 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4357 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4363 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOthenExpectedType =+                  ({-# LINE 602 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIthenExpectedType+                   {-# LINE 4369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOwhenExpectedType =+                  ({-# LINE 603 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIwhenExpectedType+                   {-# LINE 4375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree,_hdIthenType,_hdIupTypes,_hdIwhenTypes) =+                  hd_ _hdOcat _hdOdownEnv _hdOflags _hdOimCast _hdOthenExpectedType _hdOwhenExpectedType+              ( _tlIannotatedTree,_tlIoriginalTree,_tlIthenTypes,_tlIupTypes,_tlIwhenTypes) =+                  tl_ _tlOcat _tlOdownEnv _tlOflags _tlOimCast _tlOthenExpectedType _tlOwhenExpectedType+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOupTypes,_lhsOwhenTypes)))+_sem_CaseScalarExprListScalarExprPairList_Nil :: T_CaseScalarExprListScalarExprPairList+_sem_CaseScalarExprListScalarExprPairList_Nil =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast+       _lhsIthenExpectedType+       _lhsIwhenExpectedType ->+         (let _lhsOwhenTypes :: ([[Maybe TypeExtra]])+              _lhsOthenTypes :: ([Maybe TypeExtra])+              _lhsOupTypes :: ([Maybe TypeExtra])+              _lhsOannotatedTree :: CaseScalarExprListScalarExprPairList+              _lhsOoriginalTree :: CaseScalarExprListScalarExprPairList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 541, column 9)+              _lhsOwhenTypes =+                  ({-# LINE 541 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   []+                   {-# LINE 4399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 542, column 9)+              _lhsOthenTypes =+                  ({-# LINE 542 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   []+                   {-# LINE 4405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 543, column 9)+              _lhsOupTypes =+                  ({-# LINE 543 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   []+                   {-# LINE 4411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 4417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 4423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOthenTypes,_lhsOupTypes,_lhsOwhenTypes)))+-- Constraint --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : Constraint +         originalTree         : Constraint +   alternatives:+      alternative UniqueConstraint:+         child ann            : Annotation +         child name           : {String}+         child x              : {[NameComponent]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative PrimaryKeyConstraint:+         child ann            : Annotation +         child name           : {String}+         child x              : {[NameComponent]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CheckConstraint:+         child ann            : Annotation +         child name           : {String}+         child expr           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ReferenceConstraint:+         child ann            : Annotation +         child name           : {String}+         child atts           : {[NameComponent]}+         child table          : Name +         child tableAtts      : {[NameComponent]}+         child onUpdate       : {Cascade}+         child onDelete       : {Cascade}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data Constraint = UniqueConstraint (Annotation) (String) (([NameComponent]))+                | PrimaryKeyConstraint (Annotation) (String) (([NameComponent]))+                | CheckConstraint (Annotation) (String) (ScalarExpr)+                | ReferenceConstraint (Annotation) (String) (([NameComponent])) (Name) (([NameComponent])) (Cascade) (Cascade)+                deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_Constraint :: Constraint ->+                  T_Constraint+_sem_Constraint (UniqueConstraint _ann _name _x) =+    (_sem_Constraint_UniqueConstraint (_sem_Annotation _ann) _name _x)+_sem_Constraint (PrimaryKeyConstraint _ann _name _x) =+    (_sem_Constraint_PrimaryKeyConstraint (_sem_Annotation _ann) _name _x)+_sem_Constraint (CheckConstraint _ann _name _expr) =+    (_sem_Constraint_CheckConstraint (_sem_Annotation _ann) _name (_sem_ScalarExpr _expr))+_sem_Constraint (ReferenceConstraint _ann _name _atts _table _tableAtts _onUpdate _onDelete) =+    (_sem_Constraint_ReferenceConstraint (_sem_Annotation _ann) _name _atts (_sem_Name _table) _tableAtts _onUpdate _onDelete)+-- semantic domain+type T_Constraint = Catalog ->+                    TypeCheckFlags ->+                    (Maybe TypeExtra) ->+                    ( Constraint,Constraint)+data Inh_Constraint = Inh_Constraint {_cat_Inh_Constraint :: Catalog,_flags_Inh_Constraint :: TypeCheckFlags,_imCast_Inh_Constraint :: (Maybe TypeExtra)}+data Syn_Constraint = Syn_Constraint {_annotatedTree_Syn_Constraint :: Constraint,_originalTree_Syn_Constraint :: Constraint}+_wrap_Constraint :: T_Constraint ->+                   Inh_Constraint ->+                   Syn_Constraint+_wrap_Constraint sem (Inh_Constraint _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_Constraint _lhsOannotatedTree _lhsOoriginalTree))+_sem_Constraint_UniqueConstraint :: T_Annotation ->+                                   String ->+                                   ([NameComponent]) ->+                                   T_Constraint+_sem_Constraint_UniqueConstraint ann_ name_ x_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Constraint+              _lhsOoriginalTree :: Constraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 62, column 35)+              _annOtpe =+                  ({-# LINE 62 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 4531 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   UniqueConstraint _annIannotatedTree name_ x_+                   {-# LINE 4537 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   UniqueConstraint _annIoriginalTree name_ x_+                   {-# LINE 4543 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4549 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4555 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4561 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4567 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4573 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Constraint_PrimaryKeyConstraint :: T_Annotation ->+                                       String ->+                                       ([NameComponent]) ->+                                       T_Constraint+_sem_Constraint_PrimaryKeyConstraint ann_ name_ x_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Constraint+              _lhsOoriginalTree :: Constraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 59, column 39)+              _annOtpe =+                  ({-# LINE 59 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 4598 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PrimaryKeyConstraint _annIannotatedTree name_ x_+                   {-# LINE 4604 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PrimaryKeyConstraint _annIoriginalTree name_ x_+                   {-# LINE 4610 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4616 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4622 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4628 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4634 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4640 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Constraint_CheckConstraint :: T_Annotation ->+                                  String ->+                                  T_ScalarExpr ->+                                  T_Constraint+_sem_Constraint_CheckConstraint ann_ name_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOodbcFunction :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Constraint+              _lhsOoriginalTree :: Constraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 55, column 34)+              _annOtpe =+                  ({-# LINE 55 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 4677 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 56, column 34)+              _exprOdownEnv =+                  ({-# LINE 56 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 4683 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 57, column 34)+              _exprOexpectedCast =+                  ({-# LINE 57 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 4689 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 58, column 34)+              _exprOexpectedType =+                  ({-# LINE 58 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 4695 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 137, column 23)+              _exprOodbcFunction =+                  ({-# LINE 137 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 4701 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 810, column 34)+              _exprOassignmentCastContext =+                  ({-# LINE 810 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 4707 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CheckConstraint _annIannotatedTree name_ _exprIannotatedTree+                   {-# LINE 4713 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CheckConstraint _annIoriginalTree name_ _exprIoriginalTree+                   {-# LINE 4719 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4725 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4731 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4737 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4743 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4749 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4755 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4761 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4767 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Constraint_ReferenceConstraint :: T_Annotation ->+                                      String ->+                                      ([NameComponent]) ->+                                      T_Name ->+                                      ([NameComponent]) ->+                                      Cascade ->+                                      Cascade ->+                                      T_Constraint+_sem_Constraint_ReferenceConstraint ann_ name_ atts_ table_ tableAtts_ onUpdate_ onDelete_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _tableOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Constraint+              _lhsOoriginalTree :: Constraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tableOcat :: Catalog+              _tableOflags :: TypeCheckFlags+              _tableOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tableIannotatedTree :: Name+              _tableIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 60, column 38)+              _annOtpe =+                  ({-# LINE 60 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 4804 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 61, column 38)+              _tableOtpe =+                  ({-# LINE 61 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 4810 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ReferenceConstraint _annIannotatedTree name_ atts_ _tableIannotatedTree tableAtts_ onUpdate_ onDelete_+                   {-# LINE 4816 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ReferenceConstraint _annIoriginalTree name_ atts_ _tableIoriginalTree tableAtts_ onUpdate_ onDelete_+                   {-# LINE 4822 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4828 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4834 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4840 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4846 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4852 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4858 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4864 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4870 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tableIannotatedTree,_tableIoriginalTree) =+                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ConstraintList ----------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ConstraintList +         originalTree         : ConstraintList +   alternatives:+      alternative Cons:+         child hd             : Constraint +         child tl             : ConstraintList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ConstraintList = [Constraint]+-- cata+_sem_ConstraintList :: ConstraintList ->+                      T_ConstraintList+_sem_ConstraintList list =+    (Prelude.foldr _sem_ConstraintList_Cons _sem_ConstraintList_Nil (Prelude.map _sem_Constraint list))+-- semantic domain+type T_ConstraintList = Catalog ->+                        TypeCheckFlags ->+                        (Maybe TypeExtra) ->+                        ( ConstraintList,ConstraintList)+data Inh_ConstraintList = Inh_ConstraintList {_cat_Inh_ConstraintList :: Catalog,_flags_Inh_ConstraintList :: TypeCheckFlags,_imCast_Inh_ConstraintList :: (Maybe TypeExtra)}+data Syn_ConstraintList = Syn_ConstraintList {_annotatedTree_Syn_ConstraintList :: ConstraintList,_originalTree_Syn_ConstraintList :: ConstraintList}+_wrap_ConstraintList :: T_ConstraintList ->+                       Inh_ConstraintList ->+                       Syn_ConstraintList+_wrap_ConstraintList sem (Inh_ConstraintList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_ConstraintList _lhsOannotatedTree _lhsOoriginalTree))+_sem_ConstraintList_Cons :: T_Constraint ->+                           T_ConstraintList ->+                           T_ConstraintList+_sem_ConstraintList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ConstraintList+              _lhsOoriginalTree :: ConstraintList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: Constraint+              _hdIoriginalTree :: Constraint+              _tlIannotatedTree :: ConstraintList+              _tlIoriginalTree :: ConstraintList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 4941 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 4947 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 4953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 4959 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4965 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4971 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4977 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 4983 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 4989 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 4995 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_ConstraintList_Nil :: T_ConstraintList+_sem_ConstraintList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ConstraintList+              _lhsOoriginalTree :: ConstraintList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 5013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 5019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- FnBody ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : FnBody +         originalTree         : FnBody +   alternatives:+      alternative SqlFnBody:+         child ann            : Annotation +         child sts            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative PlpgsqlFnBody:+         child ann            : Annotation +         child blk            : Statement +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data FnBody = SqlFnBody (Annotation) (StatementList)+            | PlpgsqlFnBody (Annotation) (Statement)+            deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_FnBody :: FnBody ->+              T_FnBody+_sem_FnBody (SqlFnBody _ann _sts) =+    (_sem_FnBody_SqlFnBody (_sem_Annotation _ann) (_sem_StatementList _sts))+_sem_FnBody (PlpgsqlFnBody _ann _blk) =+    (_sem_FnBody_PlpgsqlFnBody (_sem_Annotation _ann) (_sem_Statement _blk))+-- semantic domain+type T_FnBody = Catalog ->+                TypeCheckFlags ->+                (Maybe TypeExtra) ->+                ( FnBody,FnBody)+data Inh_FnBody = Inh_FnBody {_cat_Inh_FnBody :: Catalog,_flags_Inh_FnBody :: TypeCheckFlags,_imCast_Inh_FnBody :: (Maybe TypeExtra)}+data Syn_FnBody = Syn_FnBody {_annotatedTree_Syn_FnBody :: FnBody,_originalTree_Syn_FnBody :: FnBody}+_wrap_FnBody :: T_FnBody ->+               Inh_FnBody ->+               Syn_FnBody+_wrap_FnBody sem (Inh_FnBody _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_FnBody _lhsOannotatedTree _lhsOoriginalTree))+_sem_FnBody_SqlFnBody :: T_Annotation ->+                        T_StatementList ->+                        T_FnBody+_sem_FnBody_SqlFnBody ann_ sts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: FnBody+              _lhsOoriginalTree :: FnBody+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _stsOcat :: Catalog+              _stsOflags :: TypeCheckFlags+              _stsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _stsIannotatedTree :: StatementList+              _stsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 64, column 24)+              _annOtpe =+                  ({-# LINE 64 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 5105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SqlFnBody _annIannotatedTree _stsIannotatedTree+                   {-# LINE 5111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SqlFnBody _annIoriginalTree _stsIoriginalTree+                   {-# LINE 5117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5129 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5135 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _stsIannotatedTree,_stsIoriginalTree) =+                  sts_ _stsOcat _stsOflags _stsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_FnBody_PlpgsqlFnBody :: T_Annotation ->+                            T_Statement ->+                            T_FnBody+_sem_FnBody_PlpgsqlFnBody ann_ blk_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: FnBody+              _lhsOoriginalTree :: FnBody+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _blkOcat :: Catalog+              _blkOflags :: TypeCheckFlags+              _blkOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _blkIannotatedTree :: Statement+              _blkIoriginalTree :: Statement+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 63, column 28)+              _annOtpe =+                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 5196 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PlpgsqlFnBody _annIannotatedTree _blkIannotatedTree+                   {-# LINE 5202 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PlpgsqlFnBody _annIoriginalTree _blkIoriginalTree+                   {-# LINE 5208 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5214 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5220 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5226 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5232 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5238 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _blkOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5244 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _blkOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5250 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _blkOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5256 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _blkIannotatedTree,_blkIoriginalTree) =+                  blk_ _blkOcat _blkOflags _blkOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- InList ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedType         : Maybe TypeExtra+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : InList +         listType             : Either [TypeError] TypeExtra+         originalTree         : InList +   alternatives:+      alternative InList:+         child ann            : Annotation +         child exprs          : ScalarExprList +         visit 0:+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative InQueryExpr:+         child ann            : Annotation +         child sel            : QueryExpr +         visit 0:+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+-}+data InList = InList (Annotation) (ScalarExprList)+            | InQueryExpr (Annotation) (QueryExpr)+            deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_InList :: InList ->+              T_InList+_sem_InList (InList _ann _exprs) =+    (_sem_InList_InList (_sem_Annotation _ann) (_sem_ScalarExprList _exprs))+_sem_InList (InQueryExpr _ann _sel) =+    (_sem_InList_InQueryExpr (_sem_Annotation _ann) (_sem_QueryExpr _sel))+-- semantic domain+type T_InList = Catalog ->+                Environment ->+                Bool ->+                (Maybe TypeExtra) ->+                TypeCheckFlags ->+                (Maybe TypeExtra) ->+                ( InList,(Either [TypeError] TypeExtra),InList)+data Inh_InList = Inh_InList {_cat_Inh_InList :: Catalog,_downEnv_Inh_InList :: Environment,_expectedCast_Inh_InList :: Bool,_expectedType_Inh_InList :: (Maybe TypeExtra),_flags_Inh_InList :: TypeCheckFlags,_imCast_Inh_InList :: (Maybe TypeExtra)}+data Syn_InList = Syn_InList {_annotatedTree_Syn_InList :: InList,_listType_Syn_InList :: (Either [TypeError] TypeExtra),_originalTree_Syn_InList :: InList}+_wrap_InList :: T_InList ->+               Inh_InList ->+               Syn_InList+_wrap_InList sem (Inh_InList _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOlistType,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast+     in  (Syn_InList _lhsOannotatedTree _lhsOlistType _lhsOoriginalTree))+_sem_InList_InList :: T_Annotation ->+                     T_ScalarExprList ->+                     T_InList+_sem_InList_InList ann_ exprs_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOlistType :: (Either [TypeError] TypeExtra)+              _exprsOexpectedTypes :: ([TypeExtra])+              _exprsOexpectedCast :: Bool+              _annOimCast :: (Maybe TypeExtra)+              _exprsOassignmentCastContext :: Bool+              _lhsOannotatedTree :: InList+              _lhsOoriginalTree :: InList+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOtpe :: (Either [TypeError] TypeExtra)+              _exprsOcat :: Catalog+              _exprsOdownEnv :: Environment+              _exprsOflags :: TypeCheckFlags+              _exprsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprsIannotatedTree :: ScalarExprList+              _exprsIoriginalTree :: ScalarExprList+              _exprsIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 219, column 9)+              _tpe =+                  ({-# LINE 219 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Left []+                   {-# LINE 5352 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 682, column 9)+              _lhsOlistType =+                  ({-# LINE 682 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   mapM (maybe (Left []) Right) _exprsIupTypes+                   >>= resolveResultSetTypeExtra _lhsIcat+                   {-# LINE 5359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 684, column 9)+              _exprsOexpectedTypes =+                  ({-# LINE 684 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe [] repeat _lhsIexpectedType+                   {-# LINE 5365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 686, column 9)+              _exprsOexpectedCast =+                  ({-# LINE 686 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 782, column 12)+              _annOimCast =+                  ({-# LINE 782 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 5377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 811, column 21)+              _exprsOassignmentCastContext =+                  ({-# LINE 811 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   InList _annIannotatedTree _exprsIannotatedTree+                   {-# LINE 5389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   InList _annIoriginalTree _exprsIoriginalTree+                   {-# LINE 5395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 5425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprsOdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 5437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprsIannotatedTree,_exprsIoriginalTree,_exprsIupTypes) =+                  exprs_ _exprsOassignmentCastContext _exprsOcat _exprsOdownEnv _exprsOexpectedCast _exprsOexpectedTypes _exprsOflags _exprsOimCast+          in  ( _lhsOannotatedTree,_lhsOlistType,_lhsOoriginalTree)))+_sem_InList_InQueryExpr :: T_Annotation ->+                          T_QueryExpr ->+                          T_InList+_sem_InList_InQueryExpr ann_ sel_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _selOouterDownEnv :: (Maybe Environment)+              _lhsOlistType :: (Either [TypeError] TypeExtra)+              _selOexpectedType :: (Maybe [TypeExtra])+              _annOimCast :: (Maybe TypeExtra)+              _selOassignmentCastContext :: Bool+              _lhsOannotatedTree :: InList+              _lhsOoriginalTree :: InList+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOtpe :: (Either [TypeError] TypeExtra)+              _selOcat :: Catalog+              _selOflags :: TypeCheckFlags+              _selOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _selIannotatedTree :: QueryExpr+              _selIoriginalTree :: QueryExpr+              _selIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 97, column 17)+              _selOouterDownEnv =+                  ({-# LINE 97 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Nothing+                   {-# LINE 5488 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 219, column 9)+              _tpe =+                  ({-# LINE 219 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Left []+                   {-# LINE 5494 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 689, column 9)+              _lhsOlistType =+                  ({-# LINE 689 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   st <- maybe (Left []) Right (map snd <$> _selIupType)+                   case length st of+                             0 -> Left [InternalError+                                        "got subquery with no columns? in inselect"]+                             1 -> Right $ head st+                             _ -> Right $ mkTypeExtra $ AnonymousCompositeType+                                     $ map teType st+                   {-# LINE 5507 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 699, column 9)+              _selOexpectedType =+                  ({-# LINE 699 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   liftM (map snd) _selIupType+                   {-# LINE 5513 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 783, column 17)+              _annOimCast =+                  ({-# LINE 783 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 5519 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 812, column 26)+              _selOassignmentCastContext =+                  ({-# LINE 812 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5525 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   InQueryExpr _annIannotatedTree _selIannotatedTree+                   {-# LINE 5531 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   InQueryExpr _annIoriginalTree _selIoriginalTree+                   {-# LINE 5537 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5543 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5549 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5555 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5561 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 5567 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5573 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5579 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5585 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =+                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOlistType,_lhsOoriginalTree)))+-- JoinExpr ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : JoinExpr +         originalTree         : JoinExpr +   alternatives:+      alternative JoinOn:+         child ann            : Annotation +         child expr           : ScalarExpr +         visit 0:+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative JoinUsing:+         child ann            : Annotation +         child x              : {[NameComponent]}+         visit 0:+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+-}+data JoinExpr = JoinOn (Annotation) (ScalarExpr)+              | JoinUsing (Annotation) (([NameComponent]))+              deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_JoinExpr :: JoinExpr ->+                T_JoinExpr+_sem_JoinExpr (JoinOn _ann _expr) =+    (_sem_JoinExpr_JoinOn (_sem_Annotation _ann) (_sem_ScalarExpr _expr))+_sem_JoinExpr (JoinUsing _ann _x) =+    (_sem_JoinExpr_JoinUsing (_sem_Annotation _ann) _x)+-- semantic domain+type T_JoinExpr = Catalog ->+                  Environment ->+                  TypeCheckFlags ->+                  (Maybe TypeExtra) ->+                  ( JoinExpr,JoinExpr)+data Inh_JoinExpr = Inh_JoinExpr {_cat_Inh_JoinExpr :: Catalog,_downEnv_Inh_JoinExpr :: Environment,_flags_Inh_JoinExpr :: TypeCheckFlags,_imCast_Inh_JoinExpr :: (Maybe TypeExtra)}+data Syn_JoinExpr = Syn_JoinExpr {_annotatedTree_Syn_JoinExpr :: JoinExpr,_originalTree_Syn_JoinExpr :: JoinExpr}+_wrap_JoinExpr :: T_JoinExpr ->+                 Inh_JoinExpr ->+                 Syn_JoinExpr+_wrap_JoinExpr sem (Inh_JoinExpr _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast+     in  (Syn_JoinExpr _lhsOannotatedTree _lhsOoriginalTree))+_sem_JoinExpr_JoinOn :: T_Annotation ->+                       T_ScalarExpr ->+                       T_JoinExpr+_sem_JoinExpr_JoinOn ann_ expr_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _exprOodbcFunction :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOexpectedCast :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: JoinExpr+              _lhsOoriginalTree :: JoinExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOcat :: Catalog+              _exprOdownEnv :: Environment+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 223, column 9)+              _tpe =+                  ({-# LINE 223 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Left []+                   {-# LINE 5675 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 140, column 14)+              _exprOodbcFunction =+                  ({-# LINE 140 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5681 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 746, column 7)+              _exprOexpectedType =+                  ({-# LINE 746 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   bt <- ansiTypeNameToDialect (tcfDialect _lhsIflags) "boolean"+                   Just $ TypeExtra (ScalarType bt) Nothing Nothing+                        $ maybe False teNullable _exprIupType+                   {-# LINE 5690 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 750, column 7)+              _exprOexpectedCast =+                  ({-# LINE 750 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 813, column 23)+              _exprOassignmentCastContext =+                  ({-# LINE 813 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5702 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   JoinOn _annIannotatedTree _exprIannotatedTree+                   {-# LINE 5708 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   JoinOn _annIoriginalTree _exprIoriginalTree+                   {-# LINE 5714 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5720 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5726 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5732 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5744 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 5750 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5756 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 5762 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5768 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5774 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_JoinExpr_JoinUsing :: T_Annotation ->+                          ([NameComponent]) ->+                          T_JoinExpr+_sem_JoinExpr_JoinUsing ann_ x_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: JoinExpr+              _lhsOoriginalTree :: JoinExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 223, column 9)+              _tpe =+                  ({-# LINE 223 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Left []+                   {-# LINE 5801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   JoinUsing _annIannotatedTree x_+                   {-# LINE 5807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   JoinUsing _annIoriginalTree x_+                   {-# LINE 5813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5837 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5843 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 5849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- MaybeBoolExpr -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : MaybeBoolExpr +         originalTree         : MaybeBoolExpr +   alternatives:+      alternative Just:+         child just           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nothing:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type MaybeBoolExpr = Maybe (ScalarExpr)+-- cata+_sem_MaybeBoolExpr :: MaybeBoolExpr ->+                     T_MaybeBoolExpr+_sem_MaybeBoolExpr (Prelude.Just x) =+    (_sem_MaybeBoolExpr_Just (_sem_ScalarExpr x))+_sem_MaybeBoolExpr Prelude.Nothing =+    _sem_MaybeBoolExpr_Nothing+-- semantic domain+type T_MaybeBoolExpr = Catalog ->+                       Environment ->+                       TypeCheckFlags ->+                       (Maybe TypeExtra) ->+                       ( MaybeBoolExpr,MaybeBoolExpr)+data Inh_MaybeBoolExpr = Inh_MaybeBoolExpr {_cat_Inh_MaybeBoolExpr :: Catalog,_downEnv_Inh_MaybeBoolExpr :: Environment,_flags_Inh_MaybeBoolExpr :: TypeCheckFlags,_imCast_Inh_MaybeBoolExpr :: (Maybe TypeExtra)}+data Syn_MaybeBoolExpr = Syn_MaybeBoolExpr {_annotatedTree_Syn_MaybeBoolExpr :: MaybeBoolExpr,_originalTree_Syn_MaybeBoolExpr :: MaybeBoolExpr}+_wrap_MaybeBoolExpr :: T_MaybeBoolExpr ->+                      Inh_MaybeBoolExpr ->+                      Syn_MaybeBoolExpr+_wrap_MaybeBoolExpr sem (Inh_MaybeBoolExpr _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast+     in  (Syn_MaybeBoolExpr _lhsOannotatedTree _lhsOoriginalTree))+_sem_MaybeBoolExpr_Just :: T_ScalarExpr ->+                          T_MaybeBoolExpr+_sem_MaybeBoolExpr_Just just_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _justOodbcFunction :: Bool+              _justOexpectedType :: (Maybe TypeExtra)+              _justOexpectedCast :: Bool+              _justOassignmentCastContext :: Bool+              _lhsOannotatedTree :: MaybeBoolExpr+              _lhsOoriginalTree :: MaybeBoolExpr+              _justOcat :: Catalog+              _justOdownEnv :: Environment+              _justOflags :: TypeCheckFlags+              _justOimCast :: (Maybe TypeExtra)+              _justIannotatedTree :: ScalarExpr+              _justIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _justIoriginalTree :: ScalarExpr+              _justIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 143, column 12)+              _justOodbcFunction =+                  ({-# LINE 143 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5923 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 762, column 7)+              _justOexpectedType =+                  ({-# LINE 762 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 5929 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 763, column 7)+              _justOexpectedCast =+                  ({-# LINE 763 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5935 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 814, column 26)+              _justOassignmentCastContext =+                  ({-# LINE 814 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 5941 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIannotatedTree+                   {-# LINE 5947 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIoriginalTree+                   {-# LINE 5953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 5959 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 5965 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 5971 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 5977 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 5983 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 5989 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _justIannotatedTree,_justIcolExprs,_justIoriginalTree,_justIupType) =+                  just_ _justOassignmentCastContext _justOcat _justOdownEnv _justOexpectedCast _justOexpectedType _justOflags _justOimCast _justOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_MaybeBoolExpr_Nothing :: T_MaybeBoolExpr+_sem_MaybeBoolExpr_Nothing =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: MaybeBoolExpr+              _lhsOoriginalTree :: MaybeBoolExpr+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6006 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6012 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6018 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6024 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- MaybeNameComponentList --------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : MaybeNameComponentList +         originalTree         : MaybeNameComponentList +   alternatives:+      alternative Just:+         child just           : NameComponentList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nothing:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type MaybeNameComponentList = Maybe (NameComponentList)+-- cata+_sem_MaybeNameComponentList :: MaybeNameComponentList ->+                              T_MaybeNameComponentList+_sem_MaybeNameComponentList (Prelude.Just x) =+    (_sem_MaybeNameComponentList_Just (_sem_NameComponentList x))+_sem_MaybeNameComponentList Prelude.Nothing =+    _sem_MaybeNameComponentList_Nothing+-- semantic domain+type T_MaybeNameComponentList = Catalog ->+                                TypeCheckFlags ->+                                (Maybe TypeExtra) ->+                                ( MaybeNameComponentList,MaybeNameComponentList)+data Inh_MaybeNameComponentList = Inh_MaybeNameComponentList {_cat_Inh_MaybeNameComponentList :: Catalog,_flags_Inh_MaybeNameComponentList :: TypeCheckFlags,_imCast_Inh_MaybeNameComponentList :: (Maybe TypeExtra)}+data Syn_MaybeNameComponentList = Syn_MaybeNameComponentList {_annotatedTree_Syn_MaybeNameComponentList :: MaybeNameComponentList,_originalTree_Syn_MaybeNameComponentList :: MaybeNameComponentList}+_wrap_MaybeNameComponentList :: T_MaybeNameComponentList ->+                               Inh_MaybeNameComponentList ->+                               Syn_MaybeNameComponentList+_wrap_MaybeNameComponentList sem (Inh_MaybeNameComponentList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_MaybeNameComponentList _lhsOannotatedTree _lhsOoriginalTree))+_sem_MaybeNameComponentList_Just :: T_NameComponentList ->+                                   T_MaybeNameComponentList+_sem_MaybeNameComponentList_Just just_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: MaybeNameComponentList+              _lhsOoriginalTree :: MaybeNameComponentList+              _justOcat :: Catalog+              _justOflags :: TypeCheckFlags+              _justOimCast :: (Maybe TypeExtra)+              _justIannotatedTree :: NameComponentList+              _justIoriginalTree :: NameComponentList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIannotatedTree+                   {-# LINE 6086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIoriginalTree+                   {-# LINE 6092 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6098 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6104 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 6110 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 6116 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 6122 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _justIannotatedTree,_justIoriginalTree) =+                  just_ _justOcat _justOflags _justOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_MaybeNameComponentList_Nothing :: T_MaybeNameComponentList+_sem_MaybeNameComponentList_Nothing =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: MaybeNameComponentList+              _lhsOoriginalTree :: MaybeNameComponentList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- MaybeScalarExpr ---------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedType         : Maybe TypeExtra+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : MaybeScalarExpr +         originalTree         : MaybeScalarExpr +         upType               : Maybe TypeExtra+   alternatives:+      alternative Just:+         child just           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nothing:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type MaybeScalarExpr = Maybe (ScalarExpr)+-- cata+_sem_MaybeScalarExpr :: MaybeScalarExpr ->+                       T_MaybeScalarExpr+_sem_MaybeScalarExpr (Prelude.Just x) =+    (_sem_MaybeScalarExpr_Just (_sem_ScalarExpr x))+_sem_MaybeScalarExpr Prelude.Nothing =+    _sem_MaybeScalarExpr_Nothing+-- semantic domain+type T_MaybeScalarExpr = Bool ->+                         Catalog ->+                         Environment ->+                         Bool ->+                         (Maybe TypeExtra) ->+                         TypeCheckFlags ->+                         (Maybe TypeExtra) ->+                         ( MaybeScalarExpr,MaybeScalarExpr,(Maybe TypeExtra))+data Inh_MaybeScalarExpr = Inh_MaybeScalarExpr {_assignmentCastContext_Inh_MaybeScalarExpr :: Bool,_cat_Inh_MaybeScalarExpr :: Catalog,_downEnv_Inh_MaybeScalarExpr :: Environment,_expectedCast_Inh_MaybeScalarExpr :: Bool,_expectedType_Inh_MaybeScalarExpr :: (Maybe TypeExtra),_flags_Inh_MaybeScalarExpr :: TypeCheckFlags,_imCast_Inh_MaybeScalarExpr :: (Maybe TypeExtra)}+data Syn_MaybeScalarExpr = Syn_MaybeScalarExpr {_annotatedTree_Syn_MaybeScalarExpr :: MaybeScalarExpr,_originalTree_Syn_MaybeScalarExpr :: MaybeScalarExpr,_upType_Syn_MaybeScalarExpr :: (Maybe TypeExtra)}+_wrap_MaybeScalarExpr :: T_MaybeScalarExpr ->+                        Inh_MaybeScalarExpr ->+                        Syn_MaybeScalarExpr+_wrap_MaybeScalarExpr sem (Inh_MaybeScalarExpr _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast+     in  (Syn_MaybeScalarExpr _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))+_sem_MaybeScalarExpr_Just :: T_ScalarExpr ->+                            T_MaybeScalarExpr+_sem_MaybeScalarExpr_Just just_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _justOodbcFunction :: Bool+              _lhsOannotatedTree :: MaybeScalarExpr+              _lhsOoriginalTree :: MaybeScalarExpr+              _lhsOupType :: (Maybe TypeExtra)+              _justOassignmentCastContext :: Bool+              _justOcat :: Catalog+              _justOdownEnv :: Environment+              _justOexpectedCast :: Bool+              _justOexpectedType :: (Maybe TypeExtra)+              _justOflags :: TypeCheckFlags+              _justOimCast :: (Maybe TypeExtra)+              _justIannotatedTree :: ScalarExpr+              _justIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _justIoriginalTree :: ScalarExpr+              _justIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 146, column 12)+              _justOodbcFunction =+                  ({-# LINE 146 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 6239 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIannotatedTree+                   {-# LINE 6245 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIoriginalTree+                   {-# LINE 6251 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6257 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOupType =+                  ({-# LINE 109 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _justIupType+                   {-# LINE 6269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 6275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 6281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 6287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOexpectedCast =+                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 6293 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOexpectedType =+                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 6299 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 6305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 6311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _justIannotatedTree,_justIcolExprs,_justIoriginalTree,_justIupType) =+                  just_ _justOassignmentCastContext _justOcat _justOdownEnv _justOexpectedCast _justOexpectedType _justOflags _justOimCast _justOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+_sem_MaybeScalarExpr_Nothing :: T_MaybeScalarExpr+_sem_MaybeScalarExpr_Nothing =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOupType :: (Maybe TypeExtra)+              _lhsOannotatedTree :: MaybeScalarExpr+              _lhsOoriginalTree :: MaybeScalarExpr+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 120, column 15)+              _lhsOupType =+                  ({-# LINE 120 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 6332 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6338 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6344 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6350 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6356 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+-- MaybeSelectList ---------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : MaybeSelectList +         originalTree         : MaybeSelectList +   alternatives:+      alternative Just:+         child just           : SelectList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nothing:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type MaybeSelectList = Maybe (SelectList)+-- cata+_sem_MaybeSelectList :: MaybeSelectList ->+                       T_MaybeSelectList+_sem_MaybeSelectList (Prelude.Just x) =+    (_sem_MaybeSelectList_Just (_sem_SelectList x))+_sem_MaybeSelectList Prelude.Nothing =+    _sem_MaybeSelectList_Nothing+-- semantic domain+type T_MaybeSelectList = Catalog ->+                         TypeCheckFlags ->+                         (Maybe TypeExtra) ->+                         ( MaybeSelectList,MaybeSelectList)+data Inh_MaybeSelectList = Inh_MaybeSelectList {_cat_Inh_MaybeSelectList :: Catalog,_flags_Inh_MaybeSelectList :: TypeCheckFlags,_imCast_Inh_MaybeSelectList :: (Maybe TypeExtra)}+data Syn_MaybeSelectList = Syn_MaybeSelectList {_annotatedTree_Syn_MaybeSelectList :: MaybeSelectList,_originalTree_Syn_MaybeSelectList :: MaybeSelectList}+_wrap_MaybeSelectList :: T_MaybeSelectList ->+                        Inh_MaybeSelectList ->+                        Syn_MaybeSelectList+_wrap_MaybeSelectList sem (Inh_MaybeSelectList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_MaybeSelectList _lhsOannotatedTree _lhsOoriginalTree))+_sem_MaybeSelectList_Just :: T_SelectList ->+                            T_MaybeSelectList+_sem_MaybeSelectList_Just just_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _justOdownEnv :: Environment+              _justOexpectedCast :: Bool+              _justOexpectedType :: (Maybe [TypeExtra])+              _justOassignmentCastContext :: Bool+              _lhsOannotatedTree :: MaybeSelectList+              _lhsOoriginalTree :: MaybeSelectList+              _justOcat :: Catalog+              _justOflags :: TypeCheckFlags+              _justOimCast :: (Maybe TypeExtra)+              _justIannotatedTree :: SelectList+              _justIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _justIoriginalTree :: SelectList+              _justIupEnv :: Environment+              _justIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 65, column 28)+              _justOdownEnv =+                  ({-# LINE 65 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 6425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 66, column 28)+              _justOexpectedCast =+                  ({-# LINE 66 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 6431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 67, column 28)+              _justOexpectedType =+                  ({-# LINE 67 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 6437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 815, column 28)+              _justOassignmentCastContext =+                  ({-# LINE 815 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 6443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIannotatedTree+                   {-# LINE 6449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIoriginalTree+                   {-# LINE 6455 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6461 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6467 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 6473 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 6479 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 6485 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _justIannotatedTree,_justIcolExprs,_justIoriginalTree,_justIupEnv,_justIupType) =+                  just_ _justOassignmentCastContext _justOcat _justOdownEnv _justOexpectedCast _justOexpectedType _justOflags _justOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_MaybeSelectList_Nothing :: T_MaybeSelectList+_sem_MaybeSelectList_Nothing =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: MaybeSelectList+              _lhsOoriginalTree :: MaybeSelectList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6501 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6507 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6513 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6519 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- MaybeTablePartitionDef --------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : MaybeTablePartitionDef +         originalTree         : MaybeTablePartitionDef +   alternatives:+      alternative Just:+         child just           : TablePartitionDef +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nothing:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type MaybeTablePartitionDef = Maybe (TablePartitionDef)+-- cata+_sem_MaybeTablePartitionDef :: MaybeTablePartitionDef ->+                              T_MaybeTablePartitionDef+_sem_MaybeTablePartitionDef (Prelude.Just x) =+    (_sem_MaybeTablePartitionDef_Just (_sem_TablePartitionDef x))+_sem_MaybeTablePartitionDef Prelude.Nothing =+    _sem_MaybeTablePartitionDef_Nothing+-- semantic domain+type T_MaybeTablePartitionDef = Catalog ->+                                TypeCheckFlags ->+                                (Maybe TypeExtra) ->+                                ( MaybeTablePartitionDef,MaybeTablePartitionDef)+data Inh_MaybeTablePartitionDef = Inh_MaybeTablePartitionDef {_cat_Inh_MaybeTablePartitionDef :: Catalog,_flags_Inh_MaybeTablePartitionDef :: TypeCheckFlags,_imCast_Inh_MaybeTablePartitionDef :: (Maybe TypeExtra)}+data Syn_MaybeTablePartitionDef = Syn_MaybeTablePartitionDef {_annotatedTree_Syn_MaybeTablePartitionDef :: MaybeTablePartitionDef,_originalTree_Syn_MaybeTablePartitionDef :: MaybeTablePartitionDef}+_wrap_MaybeTablePartitionDef :: T_MaybeTablePartitionDef ->+                               Inh_MaybeTablePartitionDef ->+                               Syn_MaybeTablePartitionDef+_wrap_MaybeTablePartitionDef sem (Inh_MaybeTablePartitionDef _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_MaybeTablePartitionDef _lhsOannotatedTree _lhsOoriginalTree))+_sem_MaybeTablePartitionDef_Just :: T_TablePartitionDef ->+                                   T_MaybeTablePartitionDef+_sem_MaybeTablePartitionDef_Just just_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: MaybeTablePartitionDef+              _lhsOoriginalTree :: MaybeTablePartitionDef+              _justOcat :: Catalog+              _justOflags :: TypeCheckFlags+              _justOimCast :: (Maybe TypeExtra)+              _justIannotatedTree :: TablePartitionDef+              _justIoriginalTree :: TablePartitionDef+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIannotatedTree+                   {-# LINE 6581 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIoriginalTree+                   {-# LINE 6587 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6593 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6599 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 6605 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 6611 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 6617 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _justIannotatedTree,_justIoriginalTree) =+                  just_ _justOcat _justOflags _justOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_MaybeTablePartitionDef_Nothing :: T_MaybeTablePartitionDef+_sem_MaybeTablePartitionDef_Nothing =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: MaybeTablePartitionDef+              _lhsOoriginalTree :: MaybeTablePartitionDef+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6633 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 6639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6645 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6651 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- Name --------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+         tpe                  : Either [TypeError] TypeExtra+      synthesized attributes:+         annotatedTree        : Name +         originalTree         : Name +   alternatives:+      alternative Name:+         child ann            : Annotation +         child is             : {[NameComponent]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AntiName:+         child string         : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data Name = Name (Annotation) (([NameComponent]))+          | AntiName (String)+          deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_Name :: Name ->+            T_Name+_sem_Name (Name _ann _is) =+    (_sem_Name_Name (_sem_Annotation _ann) _is)+_sem_Name (AntiName _string) =+    (_sem_Name_AntiName _string)+-- semantic domain+type T_Name = Catalog ->+              TypeCheckFlags ->+              (Maybe TypeExtra) ->+              (Either [TypeError] TypeExtra) ->+              ( Name,Name)+data Inh_Name = Inh_Name {_cat_Inh_Name :: Catalog,_flags_Inh_Name :: TypeCheckFlags,_imCast_Inh_Name :: (Maybe TypeExtra),_tpe_Inh_Name :: (Either [TypeError] TypeExtra)}+data Syn_Name = Syn_Name {_annotatedTree_Syn_Name :: Name,_originalTree_Syn_Name :: Name}+_wrap_Name :: T_Name ->+             Inh_Name ->+             Syn_Name+_wrap_Name sem (Inh_Name _lhsIcat _lhsIflags _lhsIimCast _lhsItpe) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast _lhsItpe+     in  (Syn_Name _lhsOannotatedTree _lhsOoriginalTree))+_sem_Name_Name :: T_Annotation ->+                 ([NameComponent]) ->+                 T_Name+_sem_Name_Name ann_ is_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast+       _lhsItpe ->+         (let _lhsOannotatedTree :: Name+              _lhsOoriginalTree :: Name+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Name _annIannotatedTree is_+                   {-# LINE 6722 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Name _annIoriginalTree is_+                   {-# LINE 6728 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6734 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6740 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 6746 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 6752 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 6758 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsItpe+                   {-# LINE 6764 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Name_AntiName :: String ->+                     T_Name+_sem_Name_AntiName string_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast+       _lhsItpe ->+         (let _lhsOannotatedTree :: Name+              _lhsOoriginalTree :: Name+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AntiName string_+                   {-# LINE 6782 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AntiName string_+                   {-# LINE 6788 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6794 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6800 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- NameComponentList -------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : NameComponentList +         originalTree         : NameComponentList +   alternatives:+      alternative Cons:+         child hd             : {NameComponent}+         child tl             : NameComponentList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type NameComponentList = [(NameComponent)]+-- cata+_sem_NameComponentList :: NameComponentList ->+                         T_NameComponentList+_sem_NameComponentList list =+    (Prelude.foldr _sem_NameComponentList_Cons _sem_NameComponentList_Nil list)+-- semantic domain+type T_NameComponentList = Catalog ->+                           TypeCheckFlags ->+                           (Maybe TypeExtra) ->+                           ( NameComponentList,NameComponentList)+data Inh_NameComponentList = Inh_NameComponentList {_cat_Inh_NameComponentList :: Catalog,_flags_Inh_NameComponentList :: TypeCheckFlags,_imCast_Inh_NameComponentList :: (Maybe TypeExtra)}+data Syn_NameComponentList = Syn_NameComponentList {_annotatedTree_Syn_NameComponentList :: NameComponentList,_originalTree_Syn_NameComponentList :: NameComponentList}+_wrap_NameComponentList :: T_NameComponentList ->+                          Inh_NameComponentList ->+                          Syn_NameComponentList+_wrap_NameComponentList sem (Inh_NameComponentList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_NameComponentList _lhsOannotatedTree _lhsOoriginalTree))+_sem_NameComponentList_Cons :: NameComponent ->+                              T_NameComponentList ->+                              T_NameComponentList+_sem_NameComponentList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: NameComponentList+              _lhsOoriginalTree :: NameComponentList+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _tlIannotatedTree :: NameComponentList+              _tlIoriginalTree :: NameComponentList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) hd_ _tlIannotatedTree+                   {-# LINE 6862 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) hd_ _tlIoriginalTree+                   {-# LINE 6868 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6874 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6880 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 6886 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 6892 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 6898 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_NameComponentList_Nil :: T_NameComponentList+_sem_NameComponentList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: NameComponentList+              _lhsOoriginalTree :: NameComponentList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 6914 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 6920 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 6926 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 6932 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- NameTypeNameListPair ----------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : NameTypeNameListPair +         originalTree         : NameTypeNameListPair +   alternatives:+      alternative Tuple:+         child x1             : Name +         child x2             : TypeNameList +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type NameTypeNameListPair = ( Name,TypeNameList)+-- cata+_sem_NameTypeNameListPair :: NameTypeNameListPair ->+                            T_NameTypeNameListPair+_sem_NameTypeNameListPair ( x1,x2) =+    (_sem_NameTypeNameListPair_Tuple (_sem_Name x1) (_sem_TypeNameList x2))+-- semantic domain+type T_NameTypeNameListPair = Catalog ->+                              TypeCheckFlags ->+                              (Maybe TypeExtra) ->+                              ( NameTypeNameListPair,NameTypeNameListPair)+data Inh_NameTypeNameListPair = Inh_NameTypeNameListPair {_cat_Inh_NameTypeNameListPair :: Catalog,_flags_Inh_NameTypeNameListPair :: TypeCheckFlags,_imCast_Inh_NameTypeNameListPair :: (Maybe TypeExtra)}+data Syn_NameTypeNameListPair = Syn_NameTypeNameListPair {_annotatedTree_Syn_NameTypeNameListPair :: NameTypeNameListPair,_originalTree_Syn_NameTypeNameListPair :: NameTypeNameListPair}+_wrap_NameTypeNameListPair :: T_NameTypeNameListPair ->+                             Inh_NameTypeNameListPair ->+                             Syn_NameTypeNameListPair+_wrap_NameTypeNameListPair sem (Inh_NameTypeNameListPair _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_NameTypeNameListPair _lhsOannotatedTree _lhsOoriginalTree))+_sem_NameTypeNameListPair_Tuple :: T_Name ->+                                  T_TypeNameList ->+                                  T_NameTypeNameListPair+_sem_NameTypeNameListPair_Tuple x1_ x2_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _x1Otpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: NameTypeNameListPair+              _lhsOoriginalTree :: NameTypeNameListPair+              _x1Ocat :: Catalog+              _x1Oflags :: TypeCheckFlags+              _x1OimCast :: (Maybe TypeExtra)+              _x2Ocat :: Catalog+              _x2Oflags :: TypeCheckFlags+              _x2OimCast :: (Maybe TypeExtra)+              _x1IannotatedTree :: Name+              _x1IoriginalTree :: Name+              _x2IannotatedTree :: TypeNameList+              _x2IoriginalTree :: TypeNameList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 68, column 34)+              _x1Otpe =+                  ({-# LINE 68 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 6996 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IannotatedTree,_x2IannotatedTree)+                   {-# LINE 7002 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IoriginalTree,_x2IoriginalTree)+                   {-# LINE 7008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7032 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7038 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7044 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7050 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7056 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _x1IannotatedTree,_x1IoriginalTree) =+                  x1_ _x1Ocat _x1Oflags _x1OimCast _x1Otpe+              ( _x2IannotatedTree,_x2IoriginalTree) =+                  x2_ _x2Ocat _x2Oflags _x2OimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- NameTypeNameListPairList ------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : NameTypeNameListPairList +         originalTree         : NameTypeNameListPairList +   alternatives:+      alternative Cons:+         child hd             : NameTypeNameListPair +         child tl             : NameTypeNameListPairList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type NameTypeNameListPairList = [NameTypeNameListPair]+-- cata+_sem_NameTypeNameListPairList :: NameTypeNameListPairList ->+                                T_NameTypeNameListPairList+_sem_NameTypeNameListPairList list =+    (Prelude.foldr _sem_NameTypeNameListPairList_Cons _sem_NameTypeNameListPairList_Nil (Prelude.map _sem_NameTypeNameListPair list))+-- semantic domain+type T_NameTypeNameListPairList = Catalog ->+                                  TypeCheckFlags ->+                                  (Maybe TypeExtra) ->+                                  ( NameTypeNameListPairList,NameTypeNameListPairList)+data Inh_NameTypeNameListPairList = Inh_NameTypeNameListPairList {_cat_Inh_NameTypeNameListPairList :: Catalog,_flags_Inh_NameTypeNameListPairList :: TypeCheckFlags,_imCast_Inh_NameTypeNameListPairList :: (Maybe TypeExtra)}+data Syn_NameTypeNameListPairList = Syn_NameTypeNameListPairList {_annotatedTree_Syn_NameTypeNameListPairList :: NameTypeNameListPairList,_originalTree_Syn_NameTypeNameListPairList :: NameTypeNameListPairList}+_wrap_NameTypeNameListPairList :: T_NameTypeNameListPairList ->+                                 Inh_NameTypeNameListPairList ->+                                 Syn_NameTypeNameListPairList+_wrap_NameTypeNameListPairList sem (Inh_NameTypeNameListPairList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_NameTypeNameListPairList _lhsOannotatedTree _lhsOoriginalTree))+_sem_NameTypeNameListPairList_Cons :: T_NameTypeNameListPair ->+                                     T_NameTypeNameListPairList ->+                                     T_NameTypeNameListPairList+_sem_NameTypeNameListPairList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: NameTypeNameListPairList+              _lhsOoriginalTree :: NameTypeNameListPairList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: NameTypeNameListPair+              _hdIoriginalTree :: NameTypeNameListPair+              _tlIannotatedTree :: NameTypeNameListPairList+              _tlIoriginalTree :: NameTypeNameListPairList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 7127 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 7133 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7139 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7145 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7151 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7163 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7169 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7175 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7181 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_NameTypeNameListPairList_Nil :: T_NameTypeNameListPairList+_sem_NameTypeNameListPairList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: NameTypeNameListPairList+              _lhsOoriginalTree :: NameTypeNameListPairList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 7199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 7205 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7211 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- OnExpr ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : OnExpr +         originalTree         : OnExpr +   alternatives:+      alternative Just:+         child just           : JoinExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nothing:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type OnExpr = Maybe (JoinExpr)+-- cata+_sem_OnExpr :: OnExpr ->+              T_OnExpr+_sem_OnExpr (Prelude.Just x) =+    (_sem_OnExpr_Just (_sem_JoinExpr x))+_sem_OnExpr Prelude.Nothing =+    _sem_OnExpr_Nothing+-- semantic domain+type T_OnExpr = Catalog ->+                Environment ->+                TypeCheckFlags ->+                (Maybe TypeExtra) ->+                ( OnExpr,OnExpr)+data Inh_OnExpr = Inh_OnExpr {_cat_Inh_OnExpr :: Catalog,_downEnv_Inh_OnExpr :: Environment,_flags_Inh_OnExpr :: TypeCheckFlags,_imCast_Inh_OnExpr :: (Maybe TypeExtra)}+data Syn_OnExpr = Syn_OnExpr {_annotatedTree_Syn_OnExpr :: OnExpr,_originalTree_Syn_OnExpr :: OnExpr}+_wrap_OnExpr :: T_OnExpr ->+               Inh_OnExpr ->+               Syn_OnExpr+_wrap_OnExpr sem (Inh_OnExpr _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast+     in  (Syn_OnExpr _lhsOannotatedTree _lhsOoriginalTree))+_sem_OnExpr_Just :: T_JoinExpr ->+                   T_OnExpr+_sem_OnExpr_Just just_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: OnExpr+              _lhsOoriginalTree :: OnExpr+              _justOcat :: Catalog+              _justOdownEnv :: Environment+              _justOflags :: TypeCheckFlags+              _justOimCast :: (Maybe TypeExtra)+              _justIannotatedTree :: JoinExpr+              _justIoriginalTree :: JoinExpr+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIannotatedTree+                   {-# LINE 7283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Just _justIoriginalTree+                   {-# LINE 7289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOdownEnv =+                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 7313 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7319 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _justOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7325 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _justIannotatedTree,_justIoriginalTree) =+                  just_ _justOcat _justOdownEnv _justOflags _justOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_OnExpr_Nothing :: T_OnExpr+_sem_OnExpr_Nothing =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: OnExpr+              _lhsOoriginalTree :: OnExpr+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 7342 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 7348 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7354 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ParamDef ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ParamDef +         originalTree         : ParamDef +   alternatives:+      alternative ParamDef:+         child ann            : Annotation +         child name           : {NameComponent}+         child typ            : TypeName +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ParamDefTp:+         child ann            : Annotation +         child typ            : TypeName +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data ParamDef = ParamDef (Annotation) (NameComponent) (TypeName)+              | ParamDefTp (Annotation) (TypeName)+              deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_ParamDef :: ParamDef ->+                T_ParamDef+_sem_ParamDef (ParamDef _ann _name _typ) =+    (_sem_ParamDef_ParamDef (_sem_Annotation _ann) _name (_sem_TypeName _typ))+_sem_ParamDef (ParamDefTp _ann _typ) =+    (_sem_ParamDef_ParamDefTp (_sem_Annotation _ann) (_sem_TypeName _typ))+-- semantic domain+type T_ParamDef = Catalog ->+                  TypeCheckFlags ->+                  (Maybe TypeExtra) ->+                  ( ParamDef,ParamDef)+data Inh_ParamDef = Inh_ParamDef {_cat_Inh_ParamDef :: Catalog,_flags_Inh_ParamDef :: TypeCheckFlags,_imCast_Inh_ParamDef :: (Maybe TypeExtra)}+data Syn_ParamDef = Syn_ParamDef {_annotatedTree_Syn_ParamDef :: ParamDef,_originalTree_Syn_ParamDef :: ParamDef}+_wrap_ParamDef :: T_ParamDef ->+                 Inh_ParamDef ->+                 Syn_ParamDef+_wrap_ParamDef sem (Inh_ParamDef _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_ParamDef _lhsOannotatedTree _lhsOoriginalTree))+_sem_ParamDef_ParamDef :: T_Annotation ->+                         NameComponent ->+                         T_TypeName ->+                         T_ParamDef+_sem_ParamDef_ParamDef ann_ name_ typ_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: ParamDef+              _lhsOoriginalTree :: ParamDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 69, column 25)+              _annOtpe =+                  ({-# LINE 69 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 7437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ParamDef _annIannotatedTree name_ _typIannotatedTree+                   {-# LINE 7443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ParamDef _annIoriginalTree name_ _typIoriginalTree+                   {-# LINE 7449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7455 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7461 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7467 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7473 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7479 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7485 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7491 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7497 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_ParamDef_ParamDefTp :: T_Annotation ->+                           T_TypeName ->+                           T_ParamDef+_sem_ParamDef_ParamDefTp ann_ typ_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: ParamDef+              _lhsOoriginalTree :: ParamDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 70, column 27)+              _annOtpe =+                  ({-# LINE 70 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 7529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ParamDefTp _annIannotatedTree _typIannotatedTree+                   {-# LINE 7535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ParamDefTp _annIoriginalTree _typIoriginalTree+                   {-# LINE 7541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ParamDefList ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ParamDefList +         originalTree         : ParamDefList +   alternatives:+      alternative Cons:+         child hd             : ParamDef +         child tl             : ParamDefList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ParamDefList = [ParamDef]+-- cata+_sem_ParamDefList :: ParamDefList ->+                    T_ParamDefList+_sem_ParamDefList list =+    (Prelude.foldr _sem_ParamDefList_Cons _sem_ParamDefList_Nil (Prelude.map _sem_ParamDef list))+-- semantic domain+type T_ParamDefList = Catalog ->+                      TypeCheckFlags ->+                      (Maybe TypeExtra) ->+                      ( ParamDefList,ParamDefList)+data Inh_ParamDefList = Inh_ParamDefList {_cat_Inh_ParamDefList :: Catalog,_flags_Inh_ParamDefList :: TypeCheckFlags,_imCast_Inh_ParamDefList :: (Maybe TypeExtra)}+data Syn_ParamDefList = Syn_ParamDefList {_annotatedTree_Syn_ParamDefList :: ParamDefList,_originalTree_Syn_ParamDefList :: ParamDefList}+_wrap_ParamDefList :: T_ParamDefList ->+                     Inh_ParamDefList ->+                     Syn_ParamDefList+_wrap_ParamDefList sem (Inh_ParamDefList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_ParamDefList _lhsOannotatedTree _lhsOoriginalTree))+_sem_ParamDefList_Cons :: T_ParamDef ->+                         T_ParamDefList ->+                         T_ParamDefList+_sem_ParamDefList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ParamDefList+              _lhsOoriginalTree :: ParamDefList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: ParamDef+              _hdIoriginalTree :: ParamDef+              _tlIannotatedTree :: ParamDefList+              _tlIoriginalTree :: ParamDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 7660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 7666 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7672 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7678 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7684 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7690 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 7702 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 7708 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 7714 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_ParamDefList_Nil :: T_ParamDefList+_sem_ParamDefList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ParamDefList+              _lhsOoriginalTree :: ParamDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 7732 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 7738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 7744 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 7750 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- QueryExpr ---------------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         expectedType         : Maybe [TypeExtra]+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+         outerDownEnv         : Maybe Environment+      synthesized attributes:+         annotatedTree        : QueryExpr +         originalTree         : QueryExpr +         upType               : Maybe [(Text,TypeExtra)]+   alternatives:+      alternative Select:+         child ann            : Annotation +         child selDistinct    : {Distinct}+         child selSelectList  : SelectList +         child selTref        : TableRefList +         child selWhere       : MaybeBoolExpr +         child selGroupBy     : ScalarExprList +         child selHaving      : MaybeBoolExpr +         child selOrderBy     : ScalarExprDirectionPairList +         child selLimit       : MaybeScalarExpr +         child selOffset      : MaybeScalarExpr +         child selOption      : {[QueryHint]}+         visit 0:+            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}+            local tpe         : {Either [TypeError] TypeExtra}+            local selGroupBy  : _+            local annotatedTree : _+            local originalTree : _+      alternative CombineQueryExpr:+         child ann            : Annotation +         child cqType         : {CombineType}+         child cqQe0          : QueryExpr +         child cqQe1          : QueryExpr +         visit 0:+            local tpe         : {Either [TypeError] TypeExtra}+            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}+            local annotatedTree : _+            local originalTree : _+      alternative Values:+         child ann            : Annotation +         child qeValues       : ScalarExprListList +         visit 0:+            local tpe         : {Either [TypeError] TypeExtra}+            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}+            local annotatedTree : _+            local originalTree : _+      alternative WithQueryExpr:+         child ann            : Annotation +         child withs          : WithQueryList +         child withQe         : QueryExpr +         visit 0:+            local tpe         : {Either [TypeError] TypeExtra}+            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}+            local annotatedTree : _+            local originalTree : _+-}++data QueryExpr+    = Select { ann:: (Annotation)+             ,selDistinct :: ( Distinct)+             ,selSelectList :: ( SelectList)+             ,selTref :: ( TableRefList)+             ,selWhere :: ( MaybeBoolExpr)+             ,selGroupBy :: ( ScalarExprList)+             ,selHaving :: ( MaybeBoolExpr)+             ,selOrderBy :: ( ScalarExprDirectionPairList)+             ,selLimit :: ( MaybeScalarExpr)+             ,selOffset :: ( MaybeScalarExpr)+             ,selOption :: ( [QueryHint])+        }+    |  CombineQueryExpr { ann:: (Annotation)+                       ,cqType :: ( CombineType)+                       ,cqQe0 :: ( QueryExpr)+                       ,cqQe1 :: ( QueryExpr)+        }+    |  Values { ann:: (Annotation)+             ,qeValues:: (ScalarExprListList)+        }+    |  WithQueryExpr { ann :: ( Annotation)+                    ,withs :: ( WithQueryList)+                    ,withQe :: ( QueryExpr)++-- todo: represent parens explicitly in queryexpr+--    | QueryExprParens ex:: QueryExpr+++    } deriving (Eq,Show,Data,Typeable)++-- cata+_sem_QueryExpr :: QueryExpr ->+                 T_QueryExpr+_sem_QueryExpr (Select _ann _selDistinct _selSelectList _selTref _selWhere _selGroupBy _selHaving _selOrderBy _selLimit _selOffset _selOption) =+    (_sem_QueryExpr_Select (_sem_Annotation _ann) _selDistinct (_sem_SelectList _selSelectList) (_sem_TableRefList _selTref) (_sem_MaybeBoolExpr _selWhere) (_sem_ScalarExprList _selGroupBy) (_sem_MaybeBoolExpr _selHaving) (_sem_ScalarExprDirectionPairList _selOrderBy) (_sem_MaybeScalarExpr _selLimit) (_sem_MaybeScalarExpr _selOffset) _selOption)+_sem_QueryExpr (CombineQueryExpr _ann _cqType _cqQe0 _cqQe1) =+    (_sem_QueryExpr_CombineQueryExpr (_sem_Annotation _ann) _cqType (_sem_QueryExpr _cqQe0) (_sem_QueryExpr _cqQe1))+_sem_QueryExpr (Values _ann _qeValues) =+    (_sem_QueryExpr_Values (_sem_Annotation _ann) (_sem_ScalarExprListList _qeValues))+_sem_QueryExpr (WithQueryExpr _ann _withs _withQe) =+    (_sem_QueryExpr_WithQueryExpr (_sem_Annotation _ann) (_sem_WithQueryList _withs) (_sem_QueryExpr _withQe))+-- semantic domain+type T_QueryExpr = Bool ->+                   Catalog ->+                   (Maybe [TypeExtra]) ->+                   TypeCheckFlags ->+                   (Maybe TypeExtra) ->+                   (Maybe Environment) ->+                   ( QueryExpr,QueryExpr,(Maybe [(Text,TypeExtra)]))+data Inh_QueryExpr = Inh_QueryExpr {_assignmentCastContext_Inh_QueryExpr :: Bool,_cat_Inh_QueryExpr :: Catalog,_expectedType_Inh_QueryExpr :: (Maybe [TypeExtra]),_flags_Inh_QueryExpr :: TypeCheckFlags,_imCast_Inh_QueryExpr :: (Maybe TypeExtra),_outerDownEnv_Inh_QueryExpr :: (Maybe Environment)}+data Syn_QueryExpr = Syn_QueryExpr {_annotatedTree_Syn_QueryExpr :: QueryExpr,_originalTree_Syn_QueryExpr :: QueryExpr,_upType_Syn_QueryExpr :: (Maybe [(Text,TypeExtra)])}+_wrap_QueryExpr :: T_QueryExpr ->+                  Inh_QueryExpr ->+                  Syn_QueryExpr+_wrap_QueryExpr sem (Inh_QueryExpr _lhsIassignmentCastContext _lhsIcat _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIouterDownEnv) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIouterDownEnv+     in  (Syn_QueryExpr _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))+_sem_QueryExpr_Select :: T_Annotation ->+                        Distinct ->+                        T_SelectList ->+                        T_TableRefList ->+                        T_MaybeBoolExpr ->+                        T_ScalarExprList ->+                        T_MaybeBoolExpr ->+                        T_ScalarExprDirectionPairList ->+                        T_MaybeScalarExpr ->+                        T_MaybeScalarExpr ->+                        ([QueryHint]) ->+                        T_QueryExpr+_sem_QueryExpr_Select ann_ selDistinct_ selSelectList_ selTref_ selWhere_ selGroupBy_ selHaving_ selOrderBy_ selLimit_ selOffset_ selOption_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIouterDownEnv ->+         (let _selGroupByOexpectedCast :: Bool+              _selLimitOdownEnv :: Environment+              _selLimitOexpectedCast :: Bool+              _selOffsetOdownEnv :: Environment+              _selOffsetOexpectedCast :: Bool+              _selSelectListOexpectedCast :: Bool+              _selSelectListOdownEnv :: Environment+              _selGroupByOdownEnv :: Environment+              _selHavingOdownEnv :: Environment+              _selOrderByOdownEnv :: Environment+              _tpee :: (Either [TypeError] [(Text,TypeExtra)])+              _selWhereOdownEnv :: Environment+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _lhsOannotatedTree :: QueryExpr+              _selGroupByOexpectedTypes :: ([TypeExtra])+              _selLimitOexpectedType :: (Maybe TypeExtra)+              _selOffsetOexpectedType :: (Maybe TypeExtra)+              _lhsOoriginalTree :: QueryExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _selSelectListOassignmentCastContext :: Bool+              _selSelectListOcat :: Catalog+              _selSelectListOexpectedType :: (Maybe [TypeExtra])+              _selSelectListOflags :: TypeCheckFlags+              _selSelectListOimCast :: (Maybe TypeExtra)+              _selTrefOcat :: Catalog+              _selTrefOflags :: TypeCheckFlags+              _selTrefOimCast :: (Maybe TypeExtra)+              _selWhereOcat :: Catalog+              _selWhereOflags :: TypeCheckFlags+              _selWhereOimCast :: (Maybe TypeExtra)+              _selGroupByOassignmentCastContext :: Bool+              _selGroupByOcat :: Catalog+              _selGroupByOflags :: TypeCheckFlags+              _selGroupByOimCast :: (Maybe TypeExtra)+              _selHavingOcat :: Catalog+              _selHavingOflags :: TypeCheckFlags+              _selHavingOimCast :: (Maybe TypeExtra)+              _selOrderByOcat :: Catalog+              _selOrderByOflags :: TypeCheckFlags+              _selOrderByOimCast :: (Maybe TypeExtra)+              _selLimitOassignmentCastContext :: Bool+              _selLimitOcat :: Catalog+              _selLimitOflags :: TypeCheckFlags+              _selLimitOimCast :: (Maybe TypeExtra)+              _selOffsetOassignmentCastContext :: Bool+              _selOffsetOcat :: Catalog+              _selOffsetOflags :: TypeCheckFlags+              _selOffsetOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _selSelectListIannotatedTree :: SelectList+              _selSelectListIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _selSelectListIoriginalTree :: SelectList+              _selSelectListIupEnv :: Environment+              _selSelectListIupType :: (Maybe [(Text,TypeExtra)])+              _selTrefIannotatedTree :: TableRefList+              _selTrefIoriginalTree :: TableRefList+              _selTrefIupEnv :: Environment+              _selWhereIannotatedTree :: MaybeBoolExpr+              _selWhereIoriginalTree :: MaybeBoolExpr+              _selGroupByIannotatedTree :: ScalarExprList+              _selGroupByIoriginalTree :: ScalarExprList+              _selGroupByIupTypes :: ([Maybe TypeExtra])+              _selHavingIannotatedTree :: MaybeBoolExpr+              _selHavingIoriginalTree :: MaybeBoolExpr+              _selOrderByIannotatedTree :: ScalarExprDirectionPairList+              _selOrderByIoriginalTree :: ScalarExprDirectionPairList+              _selLimitIannotatedTree :: MaybeScalarExpr+              _selLimitIoriginalTree :: MaybeScalarExpr+              _selLimitIupType :: (Maybe TypeExtra)+              _selOffsetIannotatedTree :: MaybeScalarExpr+              _selOffsetIoriginalTree :: MaybeScalarExpr+              _selOffsetIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 71, column 24)+              _selGroupByOexpectedCast =+                  ({-# LINE 71 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 7946 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 72, column 24)+              _selLimitOdownEnv =+                  ({-# LINE 72 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 7952 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 73, column 24)+              _selLimitOexpectedCast =+                  ({-# LINE 73 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 7958 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 74, column 24)+              _selOffsetOdownEnv =+                  ({-# LINE 74 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 7964 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 75, column 24)+              _selOffsetOexpectedCast =+                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 7970 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 76, column 24)+              _selSelectListOexpectedCast =+                  ({-# LINE 76 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 7976 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 106, column 9)+              _selSelectListOdownEnv =+                  ({-# LINE 106 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _selTrefIupEnv+                   {-# LINE 7982 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 107, column 9)+              _selGroupByOdownEnv =+                  ({-# LINE 107 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _selTrefIupEnv+                   {-# LINE 7988 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 108, column 9)+              _selHavingOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _selTrefIupEnv+                   {-# LINE 7994 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 128, column 9)+              _selOrderByOdownEnv =+                  ({-# LINE 128 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   E.orderByEnvironment _selSelectListIupEnv _selTrefIupEnv+                   {-# LINE 8000 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 129, column 9)+              _tpee =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   maybe (Left []) Right _selSelectListIupType+                   {-# LINE 8006 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 132, column 9)+              _selWhereOdownEnv =+                  ({-# LINE 132 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   maybe _selTrefIupEnv+                    (\e -> E.createCorrelatedSubqueryEnvironment e _selTrefIupEnv)+                    _lhsIouterDownEnv+                   {-# LINE 8014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)+              _tpe =+                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM (mkTypeExtra . CompositeType) _tpee+                   {-# LINE 8020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)+              _lhsOupType =+                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   either (const Nothing) Just _tpee+                   {-# LINE 8026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 239, column 9)+              _selGroupBy =+                  ({-# LINE 239 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   case _selGroupByIannotatedTree of+                       [App e nm@(Name _ [Nmc "cube"]) es] ->+                         [App e{anType = (Just (mkTypeExtra $ ScalarType "int4"))+                               ,anErrs = []+                               } nm es]+                       x -> x+                   {-# LINE 8037 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 248, column 9)+              _lhsOannotatedTree =+                  ({-# LINE 248 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Select _annIannotatedTree+                          selDistinct_+                          _selSelectListIannotatedTree+                          _selTrefIannotatedTree+                          _selWhereIannotatedTree+                          _selGroupBy+                          _selHavingIannotatedTree+                          _selOrderByIannotatedTree+                          _selLimitIannotatedTree+                          _selOffsetIannotatedTree+                          selOption_+                   {-# LINE 8053 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 767, column 7)+              _selGroupByOexpectedTypes =+                  ({-# LINE 767 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   []+                   {-# LINE 8059 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 768, column 7)+              _selLimitOexpectedType =+                  ({-# LINE 768 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 8065 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 769, column 7)+              _selOffsetOexpectedType =+                  ({-# LINE 769 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 8071 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Select _annIannotatedTree selDistinct_ _selSelectListIannotatedTree _selTrefIannotatedTree _selWhereIannotatedTree _selGroupByIannotatedTree _selHavingIannotatedTree _selOrderByIannotatedTree _selLimitIannotatedTree _selOffsetIannotatedTree selOption_+                   {-# LINE 8077 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Select _annIoriginalTree selDistinct_ _selSelectListIoriginalTree _selTrefIoriginalTree _selWhereIoriginalTree _selGroupByIoriginalTree _selHavingIoriginalTree _selOrderByIoriginalTree _selLimitIoriginalTree _selOffsetIoriginalTree selOption_+                   {-# LINE 8083 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 8089 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8095 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8101 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8107 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 8113 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selSelectListOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selSelectListOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8125 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selSelectListOexpectedType =+                  ({-# LINE 159 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 8131 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selSelectListOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selSelectListOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selTrefOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selTrefOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selTrefOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8161 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selWhereOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8167 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selWhereOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selWhereOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8179 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selGroupByOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8185 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selGroupByOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8191 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selGroupByOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8197 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selGroupByOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8203 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selHavingOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8209 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selHavingOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8215 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selHavingOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8221 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOrderByOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8227 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOrderByOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8233 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOrderByOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8239 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selLimitOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8245 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selLimitOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8251 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selLimitOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8257 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selLimitOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOffsetOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOffsetOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOffsetOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOffsetOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _selSelectListIannotatedTree,_selSelectListIcolExprs,_selSelectListIoriginalTree,_selSelectListIupEnv,_selSelectListIupType) =+                  selSelectList_ _selSelectListOassignmentCastContext _selSelectListOcat _selSelectListOdownEnv _selSelectListOexpectedCast _selSelectListOexpectedType _selSelectListOflags _selSelectListOimCast+              ( _selTrefIannotatedTree,_selTrefIoriginalTree,_selTrefIupEnv) =+                  selTref_ _selTrefOcat _selTrefOflags _selTrefOimCast+              ( _selWhereIannotatedTree,_selWhereIoriginalTree) =+                  selWhere_ _selWhereOcat _selWhereOdownEnv _selWhereOflags _selWhereOimCast+              ( _selGroupByIannotatedTree,_selGroupByIoriginalTree,_selGroupByIupTypes) =+                  selGroupBy_ _selGroupByOassignmentCastContext _selGroupByOcat _selGroupByOdownEnv _selGroupByOexpectedCast _selGroupByOexpectedTypes _selGroupByOflags _selGroupByOimCast+              ( _selHavingIannotatedTree,_selHavingIoriginalTree) =+                  selHaving_ _selHavingOcat _selHavingOdownEnv _selHavingOflags _selHavingOimCast+              ( _selOrderByIannotatedTree,_selOrderByIoriginalTree) =+                  selOrderBy_ _selOrderByOcat _selOrderByOdownEnv _selOrderByOflags _selOrderByOimCast+              ( _selLimitIannotatedTree,_selLimitIoriginalTree,_selLimitIupType) =+                  selLimit_ _selLimitOassignmentCastContext _selLimitOcat _selLimitOdownEnv _selLimitOexpectedCast _selLimitOexpectedType _selLimitOflags _selLimitOimCast+              ( _selOffsetIannotatedTree,_selOffsetIoriginalTree,_selOffsetIupType) =+                  selOffset_ _selOffsetOassignmentCastContext _selOffsetOcat _selOffsetOdownEnv _selOffsetOexpectedCast _selOffsetOexpectedType _selOffsetOflags _selOffsetOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+_sem_QueryExpr_CombineQueryExpr :: T_Annotation ->+                                  CombineType ->+                                  T_QueryExpr ->+                                  T_QueryExpr ->+                                  T_QueryExpr+_sem_QueryExpr_CombineQueryExpr ann_ cqType_ cqQe0_ cqQe1_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIouterDownEnv ->+         (let _tpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _tpee :: (Either [TypeError] [(Text,TypeExtra)])+              _lhsOannotatedTree :: QueryExpr+              _lhsOoriginalTree :: QueryExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _cqQe0OassignmentCastContext :: Bool+              _cqQe0Ocat :: Catalog+              _cqQe0OexpectedType :: (Maybe [TypeExtra])+              _cqQe0Oflags :: TypeCheckFlags+              _cqQe0OimCast :: (Maybe TypeExtra)+              _cqQe0OouterDownEnv :: (Maybe Environment)+              _cqQe1OassignmentCastContext :: Bool+              _cqQe1Ocat :: Catalog+              _cqQe1OexpectedType :: (Maybe [TypeExtra])+              _cqQe1Oflags :: TypeCheckFlags+              _cqQe1OimCast :: (Maybe TypeExtra)+              _cqQe1OouterDownEnv :: (Maybe Environment)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _cqQe0IannotatedTree :: QueryExpr+              _cqQe0IoriginalTree :: QueryExpr+              _cqQe0IupType :: (Maybe [(Text,TypeExtra)])+              _cqQe1IannotatedTree :: QueryExpr+              _cqQe1IoriginalTree :: QueryExpr+              _cqQe1IupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)+              _tpe =+                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM (mkTypeExtra . CompositeType) _tpee+                   {-# LINE 8353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)+              _lhsOupType =+                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   either (const Nothing) Just _tpee+                   {-# LINE 8359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 156, column 9)+              _tpee =+                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   do+                   a <- maybe (Left []) Right _cqQe0IupType+                   b <- maybe (Left []) Right _cqQe1IupType+                   unless (length a == length b) $ Left [IncompatibleUnionTypes (CompositeType a) (CompositeType b)]+                   let uts = zipWithM (\(_,te1) (_,te2) -> resolveResultSetTypeExtra _lhsIcat [te1,te2])+                                 a b+                   case uts of+                     Left{} -> Left [IncompatibleUnionTypes (CompositeType a) (CompositeType b)]+                     Right uts' -> return $ zipWith (\(n,_) te -> (n,te)) a uts'+                   {-# LINE 8373 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CombineQueryExpr _annIannotatedTree cqType_ _cqQe0IannotatedTree _cqQe1IannotatedTree+                   {-# LINE 8379 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CombineQueryExpr _annIoriginalTree cqType_ _cqQe0IoriginalTree _cqQe1IoriginalTree+                   {-# LINE 8385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 8391 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 8397 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 8421 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe0OassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8427 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe0Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8433 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe0OexpectedType =+                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 8439 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe0Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8445 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe0OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8451 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe0OouterDownEnv =+                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIouterDownEnv+                   {-# LINE 8457 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe1OassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8463 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8469 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe1OexpectedType =+                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 8475 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8481 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8487 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _cqQe1OouterDownEnv =+                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIouterDownEnv+                   {-# LINE 8493 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _cqQe0IannotatedTree,_cqQe0IoriginalTree,_cqQe0IupType) =+                  cqQe0_ _cqQe0OassignmentCastContext _cqQe0Ocat _cqQe0OexpectedType _cqQe0Oflags _cqQe0OimCast _cqQe0OouterDownEnv+              ( _cqQe1IannotatedTree,_cqQe1IoriginalTree,_cqQe1IupType) =+                  cqQe1_ _cqQe1OassignmentCastContext _cqQe1Ocat _cqQe1OexpectedType _cqQe1Oflags _cqQe1OimCast _cqQe1OouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+_sem_QueryExpr_Values :: T_Annotation ->+                        T_ScalarExprListList ->+                        T_QueryExpr+_sem_QueryExpr_Values ann_ qeValues_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIouterDownEnv ->+         (let _qeValuesOdownEnv :: Environment+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _tpee :: (Either [TypeError] [(Text,TypeExtra)])+              _qeValuesOexpectedCast :: Bool+              _lhsOannotatedTree :: QueryExpr+              _lhsOoriginalTree :: QueryExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _qeValuesOassignmentCastContext :: Bool+              _qeValuesOcat :: Catalog+              _qeValuesOexpectedType :: (Maybe [TypeExtra])+              _qeValuesOflags :: TypeCheckFlags+              _qeValuesOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _qeValuesIannotatedTree :: ScalarExprListList+              _qeValuesIoriginalTree :: ScalarExprListList+              _qeValuesIupType :: (Either [TypeError] [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 77, column 24)+              _qeValuesOdownEnv =+                  ({-# LINE 77 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 8537 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)+              _tpe =+                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM (mkTypeExtra . CompositeType) _tpee+                   {-# LINE 8543 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)+              _lhsOupType =+                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   either (const Nothing) Just _tpee+                   {-# LINE 8549 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 153, column 9)+              _tpee =+                  ({-# LINE 153 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _qeValuesIupType+                   {-# LINE 8555 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 154, column 9)+              _qeValuesOexpectedCast =+                  ({-# LINE 154 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   True+                   {-# LINE 8561 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Values _annIannotatedTree _qeValuesIannotatedTree+                   {-# LINE 8567 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Values _annIoriginalTree _qeValuesIoriginalTree+                   {-# LINE 8573 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 8579 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 8585 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8591 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8597 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8603 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 8609 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _qeValuesOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8615 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _qeValuesOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8621 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _qeValuesOexpectedType =+                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 8627 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _qeValuesOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8633 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _qeValuesOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _qeValuesIannotatedTree,_qeValuesIoriginalTree,_qeValuesIupType) =+                  qeValues_ _qeValuesOassignmentCastContext _qeValuesOcat _qeValuesOdownEnv _qeValuesOexpectedCast _qeValuesOexpectedType _qeValuesOflags _qeValuesOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+_sem_QueryExpr_WithQueryExpr :: T_Annotation ->+                               T_WithQueryList ->+                               T_QueryExpr ->+                               T_QueryExpr+_sem_QueryExpr_WithQueryExpr ann_ withs_ withQe_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIouterDownEnv ->+         (let _withQeOcat :: Catalog+              _withsOcatExtIncomp :: (Either [TypeError] Catalog)+              _lhsOannotatedTree :: QueryExpr+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _tpee :: (Either [TypeError] [(Text,TypeExtra)])+              _lhsOoriginalTree :: QueryExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _withsOcat :: Catalog+              _withsOflags :: TypeCheckFlags+              _withsOimCast :: (Maybe TypeExtra)+              _withQeOassignmentCastContext :: Bool+              _withQeOexpectedType :: (Maybe [TypeExtra])+              _withQeOflags :: TypeCheckFlags+              _withQeOimCast :: (Maybe TypeExtra)+              _withQeOouterDownEnv :: (Maybe Environment)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _withsIannotatedTree :: WithQueryList+              _withsIcatExtComp :: (Either [TypeError] Catalog)+              _withsIoriginalTree :: WithQueryList+              _withQeIannotatedTree :: QueryExpr+              _withQeIoriginalTree :: QueryExpr+              _withQeIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 70, column 8)+              _withQeOcat =+                  ({-# LINE 70 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   case _withsIcatExtComp of+                     Right catExtComp -> catExtComp+                     Left _ -> _lhsIcat+                   {-# LINE 8690 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 74, column 8)+              _withsOcatExtIncomp =+                  ({-# LINE 74 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   return _lhsIcat+                   {-# LINE 8696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 76, column 8)+              _lhsOannotatedTree =+                  ({-# LINE 76 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   case _withsIcatExtComp of+                     Right _ -> WithQueryExpr (_annIannotatedTree) (_withsIannotatedTree) (_withQeIannotatedTree)+                     Left tyErrs -> WithQueryExpr (emptyAnnotation { anType = Nothing, anErrs = tyErrs })+                       (_withsIannotatedTree) (_withQeIannotatedTree)+                   {-# LINE 8705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 142, column 9)+              _tpe =+                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM (mkTypeExtra . CompositeType) _tpee+                   {-# LINE 8711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 145, column 9)+              _lhsOupType =+                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   either (const Nothing) Just _tpee+                   {-# LINE 8717 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 151, column 9)+              _tpee =+                  ({-# LINE 151 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   maybe (Left []) Right _withQeIupType+                   {-# LINE 8723 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WithQueryExpr _annIannotatedTree _withsIannotatedTree _withQeIannotatedTree+                   {-# LINE 8729 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WithQueryExpr _annIoriginalTree _withsIoriginalTree _withQeIoriginalTree+                   {-# LINE 8735 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 8741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _annOtpe =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _tpe+                   {-# LINE 8765 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8771 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withQeOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 8789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withQeOexpectedType =+                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 8795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withQeOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withQeOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 8807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _withQeOouterDownEnv =+                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIouterDownEnv+                   {-# LINE 8813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _withsIannotatedTree,_withsIcatExtComp,_withsIoriginalTree) =+                  withs_ _withsOcat _withsOcatExtIncomp _withsOflags _withsOimCast+              ( _withQeIannotatedTree,_withQeIoriginalTree,_withQeIupType) =+                  withQe_ _withQeOassignmentCastContext _withQeOcat _withQeOexpectedType _withQeOflags _withQeOimCast _withQeOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+-- Root --------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+      synthesized attributes:+         annotatedTree        : Root +         originalTree         : Root +   alternatives:+      alternative Root:+         child statements     : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data Root = Root (StatementList)+          deriving ( Show)+-- cata+_sem_Root :: Root ->+            T_Root+_sem_Root (Root _statements) =+    (_sem_Root_Root (_sem_StatementList _statements))+-- semantic domain+type T_Root = Catalog ->+              TypeCheckFlags ->+              ( Root,Root)+data Inh_Root = Inh_Root {_cat_Inh_Root :: Catalog,_flags_Inh_Root :: TypeCheckFlags}+data Syn_Root = Syn_Root {_annotatedTree_Syn_Root :: Root,_originalTree_Syn_Root :: Root}+_wrap_Root :: T_Root ->+             Inh_Root ->+             Syn_Root+_wrap_Root sem (Inh_Root _lhsIcat _lhsIflags) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags+     in  (Syn_Root _lhsOannotatedTree _lhsOoriginalTree))+_sem_Root_Root :: T_StatementList ->+                 T_Root+_sem_Root_Root statements_ =+    (\ _lhsIcat+       _lhsIflags ->+         (let _statementsOimCast :: (Maybe TypeExtra)+              _lhsOannotatedTree :: Root+              _lhsOoriginalTree :: Root+              _statementsOcat :: Catalog+              _statementsOflags :: TypeCheckFlags+              _statementsIannotatedTree :: StatementList+              _statementsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag"(line 133, column 8)+              _statementsOimCast =+                  ({-# LINE 133 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 8873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Root _statementsIannotatedTree+                   {-# LINE 8879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Root _statementsIoriginalTree+                   {-# LINE 8885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 8891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 8897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _statementsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 8903 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _statementsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 8909 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _statementsIannotatedTree,_statementsIoriginalTree) =+                  statements_ _statementsOcat _statementsOflags _statementsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- RowConstraint -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : RowConstraint +         originalTree         : RowConstraint +   alternatives:+      alternative DefaultConstraint:+         child ann            : Annotation +         child name           : {String}+         child expr           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative NullConstraint:+         child ann            : Annotation +         child name           : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative NotNullConstraint:+         child ann            : Annotation +         child name           : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative IdentityConstraint:+         child ann            : Annotation +         child name           : {String}+         child seedAndInc     : {(Maybe (Integer,Integer))}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative RowCheckConstraint:+         child ann            : Annotation +         child name           : {String}+         child expr           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative RowUniqueConstraint:+         child ann            : Annotation +         child name           : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative RowPrimaryKeyConstraint:+         child ann            : Annotation +         child name           : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative RowReferenceConstraint:+         child ann            : Annotation +         child name           : {String}+         child table          : Name +         child att            : {Maybe NameComponent}+         child onUpdate       : {Cascade}+         child onDelete       : {Cascade}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data RowConstraint = DefaultConstraint (Annotation) (String) (ScalarExpr)+                   | NullConstraint (Annotation) (String)+                   | NotNullConstraint (Annotation) (String)+                   | IdentityConstraint (Annotation) (String) (((Maybe (Integer,Integer))))+                   | RowCheckConstraint (Annotation) (String) (ScalarExpr)+                   | RowUniqueConstraint (Annotation) (String)+                   | RowPrimaryKeyConstraint (Annotation) (String)+                   | RowReferenceConstraint (Annotation) (String) (Name) ((Maybe NameComponent)) (Cascade) (Cascade)+                   deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_RowConstraint :: RowConstraint ->+                     T_RowConstraint+_sem_RowConstraint (DefaultConstraint _ann _name _expr) =+    (_sem_RowConstraint_DefaultConstraint (_sem_Annotation _ann) _name (_sem_ScalarExpr _expr))+_sem_RowConstraint (NullConstraint _ann _name) =+    (_sem_RowConstraint_NullConstraint (_sem_Annotation _ann) _name)+_sem_RowConstraint (NotNullConstraint _ann _name) =+    (_sem_RowConstraint_NotNullConstraint (_sem_Annotation _ann) _name)+_sem_RowConstraint (IdentityConstraint _ann _name _seedAndInc) =+    (_sem_RowConstraint_IdentityConstraint (_sem_Annotation _ann) _name _seedAndInc)+_sem_RowConstraint (RowCheckConstraint _ann _name _expr) =+    (_sem_RowConstraint_RowCheckConstraint (_sem_Annotation _ann) _name (_sem_ScalarExpr _expr))+_sem_RowConstraint (RowUniqueConstraint _ann _name) =+    (_sem_RowConstraint_RowUniqueConstraint (_sem_Annotation _ann) _name)+_sem_RowConstraint (RowPrimaryKeyConstraint _ann _name) =+    (_sem_RowConstraint_RowPrimaryKeyConstraint (_sem_Annotation _ann) _name)+_sem_RowConstraint (RowReferenceConstraint _ann _name _table _att _onUpdate _onDelete) =+    (_sem_RowConstraint_RowReferenceConstraint (_sem_Annotation _ann) _name (_sem_Name _table) _att _onUpdate _onDelete)+-- semantic domain+type T_RowConstraint = Catalog ->+                       TypeCheckFlags ->+                       (Maybe TypeExtra) ->+                       ( RowConstraint,RowConstraint)+data Inh_RowConstraint = Inh_RowConstraint {_cat_Inh_RowConstraint :: Catalog,_flags_Inh_RowConstraint :: TypeCheckFlags,_imCast_Inh_RowConstraint :: (Maybe TypeExtra)}+data Syn_RowConstraint = Syn_RowConstraint {_annotatedTree_Syn_RowConstraint :: RowConstraint,_originalTree_Syn_RowConstraint :: RowConstraint}+_wrap_RowConstraint :: T_RowConstraint ->+                      Inh_RowConstraint ->+                      Syn_RowConstraint+_wrap_RowConstraint sem (Inh_RowConstraint _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_RowConstraint _lhsOannotatedTree _lhsOoriginalTree))+_sem_RowConstraint_DefaultConstraint :: T_Annotation ->+                                       String ->+                                       T_ScalarExpr ->+                                       T_RowConstraint+_sem_RowConstraint_DefaultConstraint ann_ name_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOodbcFunction :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 81, column 39)+              _annOtpe =+                  ({-# LINE 81 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9054 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 82, column 39)+              _exprOdownEnv =+                  ({-# LINE 82 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 9060 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 83, column 39)+              _exprOexpectedCast =+                  ({-# LINE 83 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 9066 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 84, column 39)+              _exprOexpectedType =+                  ({-# LINE 84 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 9072 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 149, column 25)+              _exprOodbcFunction =+                  ({-# LINE 149 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 9078 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 816, column 39)+              _exprOassignmentCastContext =+                  ({-# LINE 816 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 9084 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DefaultConstraint _annIannotatedTree name_ _exprIannotatedTree+                   {-# LINE 9090 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DefaultConstraint _annIoriginalTree name_ _exprIoriginalTree+                   {-# LINE 9096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9114 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraint_NullConstraint :: T_Annotation ->+                                    String ->+                                    T_RowConstraint+_sem_RowConstraint_NullConstraint ann_ name_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 80, column 36)+              _annOtpe =+                  ({-# LINE 80 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9170 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NullConstraint _annIannotatedTree name_+                   {-# LINE 9176 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NullConstraint _annIoriginalTree name_+                   {-# LINE 9182 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9188 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9194 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9200 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9206 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9212 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraint_NotNullConstraint :: T_Annotation ->+                                       String ->+                                       T_RowConstraint+_sem_RowConstraint_NotNullConstraint ann_ name_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 79, column 39)+              _annOtpe =+                  ({-# LINE 79 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9236 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NotNullConstraint _annIannotatedTree name_+                   {-# LINE 9242 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NotNullConstraint _annIoriginalTree name_+                   {-# LINE 9248 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9254 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9260 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9266 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9272 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9278 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraint_IdentityConstraint :: T_Annotation ->+                                        String ->+                                        ((Maybe (Integer,Integer))) ->+                                        T_RowConstraint+_sem_RowConstraint_IdentityConstraint ann_ name_ seedAndInc_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 78, column 40)+              _annOtpe =+                  ({-# LINE 78 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9303 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   IdentityConstraint _annIannotatedTree name_ seedAndInc_+                   {-# LINE 9309 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   IdentityConstraint _annIoriginalTree name_ seedAndInc_+                   {-# LINE 9315 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9321 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9327 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9333 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9339 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9345 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraint_RowCheckConstraint :: T_Annotation ->+                                        String ->+                                        T_ScalarExpr ->+                                        T_RowConstraint+_sem_RowConstraint_RowCheckConstraint ann_ name_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOodbcFunction :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 85, column 40)+              _annOtpe =+                  ({-# LINE 85 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9382 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 86, column 40)+              _exprOdownEnv =+                  ({-# LINE 86 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 9388 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 87, column 40)+              _exprOexpectedCast =+                  ({-# LINE 87 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 9394 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 88, column 40)+              _exprOexpectedType =+                  ({-# LINE 88 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 9400 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 150, column 26)+              _exprOodbcFunction =+                  ({-# LINE 150 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 9406 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 817, column 40)+              _exprOassignmentCastContext =+                  ({-# LINE 817 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 9412 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowCheckConstraint _annIannotatedTree name_ _exprIannotatedTree+                   {-# LINE 9418 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowCheckConstraint _annIoriginalTree name_ _exprIoriginalTree+                   {-# LINE 9424 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9430 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9436 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9442 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9448 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9454 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9460 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9466 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9472 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraint_RowUniqueConstraint :: T_Annotation ->+                                         String ->+                                         T_RowConstraint+_sem_RowConstraint_RowUniqueConstraint ann_ name_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 92, column 41)+              _annOtpe =+                  ({-# LINE 92 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9498 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowUniqueConstraint _annIannotatedTree name_+                   {-# LINE 9504 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowUniqueConstraint _annIoriginalTree name_+                   {-# LINE 9510 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9516 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9522 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9528 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9534 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9540 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraint_RowPrimaryKeyConstraint :: T_Annotation ->+                                             String ->+                                             T_RowConstraint+_sem_RowConstraint_RowPrimaryKeyConstraint ann_ name_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 89, column 45)+              _annOtpe =+                  ({-# LINE 89 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9564 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowPrimaryKeyConstraint _annIannotatedTree name_+                   {-# LINE 9570 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowPrimaryKeyConstraint _annIoriginalTree name_+                   {-# LINE 9576 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9582 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9588 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9594 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9600 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9606 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraint_RowReferenceConstraint :: T_Annotation ->+                                            String ->+                                            T_Name ->+                                            (Maybe NameComponent) ->+                                            Cascade ->+                                            Cascade ->+                                            T_RowConstraint+_sem_RowConstraint_RowReferenceConstraint ann_ name_ table_ att_ onUpdate_ onDelete_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _tableOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: RowConstraint+              _lhsOoriginalTree :: RowConstraint+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tableOcat :: Catalog+              _tableOflags :: TypeCheckFlags+              _tableOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tableIannotatedTree :: Name+              _tableIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 90, column 44)+              _annOtpe =+                  ({-# LINE 90 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9640 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 91, column 44)+              _tableOtpe =+                  ({-# LINE 91 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 9646 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowReferenceConstraint _annIannotatedTree name_ _tableIannotatedTree att_ onUpdate_ onDelete_+                   {-# LINE 9652 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   RowReferenceConstraint _annIoriginalTree name_ _tableIoriginalTree att_ onUpdate_ onDelete_+                   {-# LINE 9658 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9664 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9670 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9676 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9682 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9688 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9694 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tableIannotatedTree,_tableIoriginalTree) =+                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- RowConstraintList -------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : RowConstraintList +         originalTree         : RowConstraintList +   alternatives:+      alternative Cons:+         child hd             : RowConstraint +         child tl             : RowConstraintList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type RowConstraintList = [RowConstraint]+-- cata+_sem_RowConstraintList :: RowConstraintList ->+                         T_RowConstraintList+_sem_RowConstraintList list =+    (Prelude.foldr _sem_RowConstraintList_Cons _sem_RowConstraintList_Nil (Prelude.map _sem_RowConstraint list))+-- semantic domain+type T_RowConstraintList = Catalog ->+                           TypeCheckFlags ->+                           (Maybe TypeExtra) ->+                           ( RowConstraintList,RowConstraintList)+data Inh_RowConstraintList = Inh_RowConstraintList {_cat_Inh_RowConstraintList :: Catalog,_flags_Inh_RowConstraintList :: TypeCheckFlags,_imCast_Inh_RowConstraintList :: (Maybe TypeExtra)}+data Syn_RowConstraintList = Syn_RowConstraintList {_annotatedTree_Syn_RowConstraintList :: RowConstraintList,_originalTree_Syn_RowConstraintList :: RowConstraintList}+_wrap_RowConstraintList :: T_RowConstraintList ->+                          Inh_RowConstraintList ->+                          Syn_RowConstraintList+_wrap_RowConstraintList sem (Inh_RowConstraintList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_RowConstraintList _lhsOannotatedTree _lhsOoriginalTree))+_sem_RowConstraintList_Cons :: T_RowConstraint ->+                              T_RowConstraintList ->+                              T_RowConstraintList+_sem_RowConstraintList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: RowConstraintList+              _lhsOoriginalTree :: RowConstraintList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: RowConstraint+              _hdIoriginalTree :: RowConstraint+              _tlIannotatedTree :: RowConstraintList+              _tlIoriginalTree :: RowConstraintList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 9777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 9783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 9819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 9825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 9831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_RowConstraintList_Nil :: T_RowConstraintList+_sem_RowConstraintList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: RowConstraintList+              _lhsOoriginalTree :: RowConstraintList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 9849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 9855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 9861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 9867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExpr --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedType         : Maybe TypeExtra+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+         odbcFunction         : Bool+      synthesized attributes:+         annotatedTree        : ScalarExpr +         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]+         originalTree         : ScalarExpr +         upType               : Maybe TypeExtra+   alternatives:+      alternative NumberLit:+         child ann            : Annotation +         child d              : {String}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local digChars    : _+            local annotatedTree : _+            local originalTree : _+      alternative StringLit:+         child ann            : Annotation +         child value          : {String}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative NullLit:+         child ann            : Annotation +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative BooleanLit:+         child ann            : Annotation +         child b              : {Bool}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative TypedStringLit:+         child ann            : Annotation +         child tn             : TypeName +         child value          : {String}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Interval:+         child ann            : Annotation +         child value          : {String}+         child field          : {IntervalField}+         child prec           : {Maybe Int}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Identifier:+         child ann            : Annotation +         child i              : Name +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local elkp        : _+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Star:+         child ann            : Annotation +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : {Either [TypeError] TypeExtra}+            local starCS      : _+            local annotatedTree : _+            local originalTree : _+      alternative QStar:+         child ann            : Annotation +         child q              : {NameComponent}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : {Either [TypeError] TypeExtra}+            local starCS      : _+            local annotatedTree : _+            local originalTree : _+      alternative PositionalArg:+         child ann            : Annotation +         child p              : {Integer}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Placeholder:+         child ann            : Annotation +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative PrefixOp:+         child ann            : Annotation +         child opName         : Name +         child arg            : ScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : {Either [TypeError] TypeExtra}+            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}+            local annotatedTree : _+            local originalTree : _+      alternative PostfixOp:+         child ann            : Annotation +         child opName         : Name +         child arg            : ScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : {Either [TypeError] TypeExtra}+            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}+            local annotatedTree : _+            local originalTree : _+      alternative BinaryOp:+         child ann            : Annotation +         child opName         : Name +         child arg0           : ScalarExpr +         child arg1           : ScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : {Either [TypeError] TypeExtra}+            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}+            local annotatedTree : _+            local originalTree : _+      alternative SpecialOp:+         child ann            : Annotation +         child opName         : Name +         child args           : ScalarExprList +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : {Either [TypeError] TypeExtra}+            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}+            local annotatedTree : _+            local originalTree : _+      alternative Extract:+         child ann            : Annotation +         child field          : {ExtractField}+         child e              : ScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative App:+         child ann            : Annotation +         child funName        : Name +         child args           : ScalarExprList +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : {Either [TypeError] TypeExtra}+            local funName     : _+            local ttpe        : {Either [TypeError] ([TypeExtra],TypeExtra)}+            local annotatedTree : _+            local originalTree : _+      alternative AggregateApp:+         child ann            : Annotation +         child aggDistinct    : {Distinct}+         child fn             : ScalarExpr +         child orderBy        : ScalarExprDirectionPairList +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative WindowApp:+         child ann            : Annotation +         child fn             : ScalarExpr +         child partitionBy    : ScalarExprList +         child orderBy        : ScalarExprDirectionPairList +         child frm            : {Maybe FrameClause}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Cast:+         child ann            : Annotation +         child expr           : ScalarExpr +         child tn             : TypeName +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative ImplicitCast:+         child ann            : Annotation +         child expr           : ScalarExpr +         child te             : {TypeExtra}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Case:+         child ann            : Annotation +         child cases          : CaseScalarExprListScalarExprPairList +         child els            : MaybeScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local whenTypes   : _+            local thenTypes   : _+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative CaseSimple:+         child ann            : Annotation +         child value          : ScalarExpr +         child cases          : CaseScalarExprListScalarExprPairList +         child els            : MaybeScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local whenTypes   : _+            local thenTypes   : _+            local whent       : _+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Parens:+         child ann            : Annotation +         child ex             : ScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative InPredicate:+         child ann            : Annotation +         child expr           : ScalarExpr +         child i              : {Bool}+         child list           : InList +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local rt          : {Either [TypeError] TypeExtra}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative Exists:+         child ann            : Annotation +         child sel            : QueryExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative ScalarSubQuery:+         child ann            : Annotation +         child sel            : QueryExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative LiftApp:+         child ann            : Annotation +         child oper           : Name +         child flav           : {LiftFlavour}+         child args           : ScalarExprList +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative OdbcLiteral:+         child ann            : Annotation +         child olt            : {OdbcLiteralType}+         child val            : {String}+         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative OdbcFunc:+         child ann            : Annotation +         child ex             : ScalarExpr +         visit 0:+            local upType      : _+            local dialectTypeName : {Text -> Either [TypeError] Text}+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+      alternative AntiScalarExpr:+         child string         : {String}+         visit 0:+            local tpe         : _+            local annotatedTree : _+            local originalTree : _+-}+data ScalarExpr = NumberLit (Annotation) (String)+                | StringLit (Annotation) (String)+                | NullLit (Annotation)+                | BooleanLit (Annotation) (Bool)+                | TypedStringLit (Annotation) (TypeName) (String)+                | Interval (Annotation) (String) (IntervalField) ((Maybe Int))+                | Identifier (Annotation) (Name)+                | Star (Annotation)+                | QStar (Annotation) (NameComponent)+                | PositionalArg (Annotation) (Integer)+                | Placeholder (Annotation)+                | PrefixOp (Annotation) (Name) (ScalarExpr)+                | PostfixOp (Annotation) (Name) (ScalarExpr)+                | BinaryOp (Annotation) (Name) (ScalarExpr) (ScalarExpr)+                | SpecialOp (Annotation) (Name) (ScalarExprList)+                | Extract (Annotation) (ExtractField) (ScalarExpr)+                | App (Annotation) (Name) (ScalarExprList)+                | AggregateApp (Annotation) (Distinct) (ScalarExpr) (ScalarExprDirectionPairList)+                | WindowApp (Annotation) (ScalarExpr) (ScalarExprList) (ScalarExprDirectionPairList) ((Maybe FrameClause))+                | Cast (Annotation) (ScalarExpr) (TypeName)+                | ImplicitCast (Annotation) (ScalarExpr) (TypeExtra)+                | Case (Annotation) (CaseScalarExprListScalarExprPairList) (MaybeScalarExpr)+                | CaseSimple (Annotation) (ScalarExpr) (CaseScalarExprListScalarExprPairList) (MaybeScalarExpr)+                | Parens (Annotation) (ScalarExpr)+                | InPredicate (Annotation) (ScalarExpr) (Bool) (InList)+                | Exists (Annotation) (QueryExpr)+                | ScalarSubQuery (Annotation) (QueryExpr)+                | LiftApp (Annotation) (Name) (LiftFlavour) (ScalarExprList)+                | OdbcLiteral (Annotation) (OdbcLiteralType) (String)+                | OdbcFunc (Annotation) (ScalarExpr)+                | AntiScalarExpr (String)+                deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_ScalarExpr :: ScalarExpr ->+                  T_ScalarExpr+_sem_ScalarExpr (NumberLit _ann _d) =+    (_sem_ScalarExpr_NumberLit (_sem_Annotation _ann) _d)+_sem_ScalarExpr (StringLit _ann _value) =+    (_sem_ScalarExpr_StringLit (_sem_Annotation _ann) _value)+_sem_ScalarExpr (NullLit _ann) =+    (_sem_ScalarExpr_NullLit (_sem_Annotation _ann))+_sem_ScalarExpr (BooleanLit _ann _b) =+    (_sem_ScalarExpr_BooleanLit (_sem_Annotation _ann) _b)+_sem_ScalarExpr (TypedStringLit _ann _tn _value) =+    (_sem_ScalarExpr_TypedStringLit (_sem_Annotation _ann) (_sem_TypeName _tn) _value)+_sem_ScalarExpr (Interval _ann _value _field _prec) =+    (_sem_ScalarExpr_Interval (_sem_Annotation _ann) _value _field _prec)+_sem_ScalarExpr (Identifier _ann _i) =+    (_sem_ScalarExpr_Identifier (_sem_Annotation _ann) (_sem_Name _i))+_sem_ScalarExpr (Star _ann) =+    (_sem_ScalarExpr_Star (_sem_Annotation _ann))+_sem_ScalarExpr (QStar _ann _q) =+    (_sem_ScalarExpr_QStar (_sem_Annotation _ann) _q)+_sem_ScalarExpr (PositionalArg _ann _p) =+    (_sem_ScalarExpr_PositionalArg (_sem_Annotation _ann) _p)+_sem_ScalarExpr (Placeholder _ann) =+    (_sem_ScalarExpr_Placeholder (_sem_Annotation _ann))+_sem_ScalarExpr (PrefixOp _ann _opName _arg) =+    (_sem_ScalarExpr_PrefixOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExpr _arg))+_sem_ScalarExpr (PostfixOp _ann _opName _arg) =+    (_sem_ScalarExpr_PostfixOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExpr _arg))+_sem_ScalarExpr (BinaryOp _ann _opName _arg0 _arg1) =+    (_sem_ScalarExpr_BinaryOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExpr _arg0) (_sem_ScalarExpr _arg1))+_sem_ScalarExpr (SpecialOp _ann _opName _args) =+    (_sem_ScalarExpr_SpecialOp (_sem_Annotation _ann) (_sem_Name _opName) (_sem_ScalarExprList _args))+_sem_ScalarExpr (Extract _ann _field _e) =+    (_sem_ScalarExpr_Extract (_sem_Annotation _ann) _field (_sem_ScalarExpr _e))+_sem_ScalarExpr (App _ann _funName _args) =+    (_sem_ScalarExpr_App (_sem_Annotation _ann) (_sem_Name _funName) (_sem_ScalarExprList _args))+_sem_ScalarExpr (AggregateApp _ann _aggDistinct _fn _orderBy) =+    (_sem_ScalarExpr_AggregateApp (_sem_Annotation _ann) _aggDistinct (_sem_ScalarExpr _fn) (_sem_ScalarExprDirectionPairList _orderBy))+_sem_ScalarExpr (WindowApp _ann _fn _partitionBy _orderBy _frm) =+    (_sem_ScalarExpr_WindowApp (_sem_Annotation _ann) (_sem_ScalarExpr _fn) (_sem_ScalarExprList _partitionBy) (_sem_ScalarExprDirectionPairList _orderBy) _frm)+_sem_ScalarExpr (Cast _ann _expr _tn) =+    (_sem_ScalarExpr_Cast (_sem_Annotation _ann) (_sem_ScalarExpr _expr) (_sem_TypeName _tn))+_sem_ScalarExpr (ImplicitCast _ann _expr _te) =+    (_sem_ScalarExpr_ImplicitCast (_sem_Annotation _ann) (_sem_ScalarExpr _expr) _te)+_sem_ScalarExpr (Case _ann _cases _els) =+    (_sem_ScalarExpr_Case (_sem_Annotation _ann) (_sem_CaseScalarExprListScalarExprPairList _cases) (_sem_MaybeScalarExpr _els))+_sem_ScalarExpr (CaseSimple _ann _value _cases _els) =+    (_sem_ScalarExpr_CaseSimple (_sem_Annotation _ann) (_sem_ScalarExpr _value) (_sem_CaseScalarExprListScalarExprPairList _cases) (_sem_MaybeScalarExpr _els))+_sem_ScalarExpr (Parens _ann _ex) =+    (_sem_ScalarExpr_Parens (_sem_Annotation _ann) (_sem_ScalarExpr _ex))+_sem_ScalarExpr (InPredicate _ann _expr _i _list) =+    (_sem_ScalarExpr_InPredicate (_sem_Annotation _ann) (_sem_ScalarExpr _expr) _i (_sem_InList _list))+_sem_ScalarExpr (Exists _ann _sel) =+    (_sem_ScalarExpr_Exists (_sem_Annotation _ann) (_sem_QueryExpr _sel))+_sem_ScalarExpr (ScalarSubQuery _ann _sel) =+    (_sem_ScalarExpr_ScalarSubQuery (_sem_Annotation _ann) (_sem_QueryExpr _sel))+_sem_ScalarExpr (LiftApp _ann _oper _flav _args) =+    (_sem_ScalarExpr_LiftApp (_sem_Annotation _ann) (_sem_Name _oper) _flav (_sem_ScalarExprList _args))+_sem_ScalarExpr (OdbcLiteral _ann _olt _val) =+    (_sem_ScalarExpr_OdbcLiteral (_sem_Annotation _ann) _olt _val)+_sem_ScalarExpr (OdbcFunc _ann _ex) =+    (_sem_ScalarExpr_OdbcFunc (_sem_Annotation _ann) (_sem_ScalarExpr _ex))+_sem_ScalarExpr (AntiScalarExpr _string) =+    (_sem_ScalarExpr_AntiScalarExpr _string)+-- semantic domain+type T_ScalarExpr = Bool ->+                    Catalog ->+                    Environment ->+                    Bool ->+                    (Maybe TypeExtra) ->+                    TypeCheckFlags ->+                    (Maybe TypeExtra) ->+                    Bool ->+                    ( ScalarExpr,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),ScalarExpr,(Maybe TypeExtra))+data Inh_ScalarExpr = Inh_ScalarExpr {_assignmentCastContext_Inh_ScalarExpr :: Bool,_cat_Inh_ScalarExpr :: Catalog,_downEnv_Inh_ScalarExpr :: Environment,_expectedCast_Inh_ScalarExpr :: Bool,_expectedType_Inh_ScalarExpr :: (Maybe TypeExtra),_flags_Inh_ScalarExpr :: TypeCheckFlags,_imCast_Inh_ScalarExpr :: (Maybe TypeExtra),_odbcFunction_Inh_ScalarExpr :: Bool}+data Syn_ScalarExpr = Syn_ScalarExpr {_annotatedTree_Syn_ScalarExpr :: ScalarExpr,_colExprs_Syn_ScalarExpr :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_ScalarExpr :: ScalarExpr,_upType_Syn_ScalarExpr :: (Maybe TypeExtra)}+_wrap_ScalarExpr :: T_ScalarExpr ->+                   Inh_ScalarExpr ->+                   Syn_ScalarExpr+_wrap_ScalarExpr sem (Inh_ScalarExpr _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIodbcFunction) =+    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast _lhsIodbcFunction+     in  (Syn_ScalarExpr _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree _lhsOupType))+_sem_ScalarExpr_NumberLit :: T_Annotation ->+                            String ->+                            T_ScalarExpr+_sem_ScalarExpr_NumberLit ann_ d_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 10360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 10366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 10372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 10378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 10389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 10395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 250, column 9)+              _tpe =+                  ({-# LINE 250 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   if all (`elem` _digChars    ) d_+                   then (mkTypeExtraNN . ScalarType) <$> classifyInteger (tcfDialect _lhsIflags) d_+                   else (mkTypeExtraNN . ScalarType) <$> (_dialectTypeName     "numeric")+                   {-# LINE 10403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 254, column 9)+              _digChars =+                  ({-# LINE 254 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   concatMap show [(0::Int)..9]+                   {-# LINE 10409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NumberLit _annIannotatedTree d_+                   {-# LINE 10415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NumberLit _annIoriginalTree d_+                   {-# LINE 10421 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 10427 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 10433 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 10439 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 10445 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_StringLit :: T_Annotation ->+                            String ->+                            T_ScalarExpr+_sem_ScalarExpr_StringLit ann_ value_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 10492 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 10498 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 10504 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 10510 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 10521 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 10527 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 258, column 9)+              _tpe =+                  ({-# LINE 258 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Right $ (mkTypeExtraNN UnknownType) {tePrecision = Just $ length value_}+                   {-# LINE 10533 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   StringLit _annIannotatedTree value_+                   {-# LINE 10539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   StringLit _annIoriginalTree value_+                   {-# LINE 10545 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 10551 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 10557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 10563 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 10569 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_NullLit :: T_Annotation ->+                          T_ScalarExpr+_sem_ScalarExpr_NullLit ann_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 10615 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 10621 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 10627 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 10633 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 10644 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 10650 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 261, column 10)+              _tpe =+                  ({-# LINE 261 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Right $ mkTypeExtra UnknownType+                   {-# LINE 10656 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NullLit _annIannotatedTree+                   {-# LINE 10662 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NullLit _annIoriginalTree+                   {-# LINE 10668 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 10674 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 10680 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 10686 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 10692 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_BooleanLit :: T_Annotation ->+                             Bool ->+                             T_ScalarExpr+_sem_ScalarExpr_BooleanLit ann_ b_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 10739 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 10745 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 10751 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 10757 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 10768 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 10774 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 241, column 9)+              _tpe =+                  ({-# LINE 241 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   fmap (mkTypeExtraNN . ScalarType) $ _dialectTypeName     "boolean"+                   {-# LINE 10780 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   BooleanLit _annIannotatedTree b_+                   {-# LINE 10786 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   BooleanLit _annIoriginalTree b_+                   {-# LINE 10792 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 10798 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 10804 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 10810 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 10816 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_TypedStringLit :: T_Annotation ->+                                 T_TypeName ->+                                 String ->+                                 T_ScalarExpr+_sem_ScalarExpr_TypedStringLit ann_ tn_ value_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _tnOcat :: Catalog+              _tnOflags :: TypeCheckFlags+              _tnOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tnIannotatedTree :: TypeName+              _tnInamedType :: (Maybe TypeExtra)+              _tnIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 10870 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 10876 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 10882 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 10888 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 10899 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 10905 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 271, column 10)+              _tpe =+                  ({-# LINE 271 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right _tnInamedType+                   {-# LINE 10911 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TypedStringLit _annIannotatedTree _tnIannotatedTree value_+                   {-# LINE 10917 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TypedStringLit _annIoriginalTree _tnIoriginalTree value_+                   {-# LINE 10923 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 10929 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 10935 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 10941 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 10947 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 10953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 10959 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 10965 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tnIannotatedTree,_tnInamedType,_tnIoriginalTree) =+                  tn_ _tnOcat _tnOflags _tnOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Interval :: T_Annotation ->+                           String ->+                           IntervalField ->+                           (Maybe Int) ->+                           T_ScalarExpr+_sem_ScalarExpr_Interval ann_ value_ field_ prec_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 11016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 11022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 11028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 11034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 11045 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 11051 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 283, column 9)+              _tpe =+                  ({-# LINE 283 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Right $ mkTypeExtraNN $ ScalarType "interval"+                   {-# LINE 11057 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Interval _annIannotatedTree value_ field_ prec_+                   {-# LINE 11063 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Interval _annIoriginalTree value_ field_ prec_+                   {-# LINE 11069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 11075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 11081 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11087 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11093 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Identifier :: T_Annotation ->+                             T_Name ->+                             T_ScalarExpr+_sem_ScalarExpr_Identifier ann_ i_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _iOtpe :: (Either [TypeError] TypeExtra)+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _iOcat :: Catalog+              _iOflags :: TypeCheckFlags+              _iOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _iIannotatedTree :: Name+              _iIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 11146 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 11152 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 11158 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 11164 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 11175 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 11181 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 326, column 10)+              _elkp =+                  ({-# LINE 326 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   E.envLookupIdentifier (nameComponents _iIoriginalTree) _lhsIdownEnv+                   {-# LINE 11187 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 327, column 10)+              _tpe =+                  ({-# LINE 327 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   fmap snd _elkp+                   {-# LINE 11193 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 329, column 10)+              _lhsOannotatedTree =+                  ({-# LINE 329 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _annotatedTree+                   {-# LINE 11199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 330, column 10)+              _annotatedTree =+                  ({-# LINE 330 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   let t = Identifier _annIannotatedTree _iIannotatedTree+                   in fromMaybe t $ do+                       case tcfAddQualifiers _lhsIflags of+                         False -> Nothing+                         True -> do+                                ((q,i),_) <- either (const Nothing) Just _elkp+                                if q /= ""+                                  then+                                       return $ Identifier _annIannotatedTree+                                                  (Name emptyAnnotation [Nmc $ T.unpack q, Nmc $ T.unpack i])+                                  else return t+                   {-# LINE 11215 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 350, column 10)+              _iOtpe =+                  ({-# LINE 350 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 11221 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Identifier _annIoriginalTree _iIoriginalTree+                   {-# LINE 11227 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 11233 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11239 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11245 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _iOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11251 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _iOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11257 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _iOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 11263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _iIannotatedTree,_iIoriginalTree) =+                  i_ _iOcat _iOflags _iOimCast _iOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Star :: T_Annotation ->+                       T_ScalarExpr+_sem_ScalarExpr_Star ann_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 11312 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 11318 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 11324 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 11330 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 11341 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 11347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 714, column 9)+              _tpe =+                  ({-# LINE 714 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _originalTree of+                     Star _ ->+                       E.envExpandStar Nothing _lhsIdownEnv+                       >>= _starCS+                     QStar _ q -> do+                       E.envExpandStar (Just q) _lhsIdownEnv+                       >>= _starCS+                     _ -> Left [InternalError "wrong ctor in sem rule for star, qstar in scalarexprs.ag"]+                   {-# LINE 11360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 723, column 9)+              _starCS =+                  ({-# LINE 723 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Right . mkTypeExtraNN . CompositeType . map (\((_q,n),t) -> (n,t))+                   {-# LINE 11366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Star _annIannotatedTree+                   {-# LINE 11372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Star _annIoriginalTree+                   {-# LINE 11378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 11384 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 11390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11396 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11402 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_QStar :: T_Annotation ->+                        NameComponent ->+                        T_ScalarExpr+_sem_ScalarExpr_QStar ann_ q_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 11450 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 11456 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 11462 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 11468 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 11479 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 11485 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 714, column 9)+              _tpe =+                  ({-# LINE 714 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _originalTree of+                     Star _ ->+                       E.envExpandStar Nothing _lhsIdownEnv+                       >>= _starCS+                     QStar _ q -> do+                       E.envExpandStar (Just q) _lhsIdownEnv+                       >>= _starCS+                     _ -> Left [InternalError "wrong ctor in sem rule for star, qstar in scalarexprs.ag"]+                   {-# LINE 11498 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 723, column 9)+              _starCS =+                  ({-# LINE 723 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Right . mkTypeExtraNN . CompositeType . map (\((_q,n),t) -> (n,t))+                   {-# LINE 11504 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   QStar _annIannotatedTree q_+                   {-# LINE 11510 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   QStar _annIoriginalTree q_+                   {-# LINE 11516 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 11522 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 11528 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11534 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11540 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_PositionalArg :: T_Annotation ->+                                Integer ->+                                T_ScalarExpr+_sem_ScalarExpr_PositionalArg ann_ p_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 11587 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 11593 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 11599 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 11605 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 11616 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 11622 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 735, column 9)+              _tpe =+                  ({-# LINE 735 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 11628 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PositionalArg _annIannotatedTree p_+                   {-# LINE 11634 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PositionalArg _annIoriginalTree p_+                   {-# LINE 11640 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 11646 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 11652 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11658 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11664 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Placeholder :: T_Annotation ->+                              T_ScalarExpr+_sem_ScalarExpr_Placeholder ann_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 11710 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 11716 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 11722 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 11728 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 11739 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 11745 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 301, column 10)+              _tpe =+                  ({-# LINE 301 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Right $ mkTypeExtraNN UnknownType+                   {-# LINE 11751 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Placeholder _annIannotatedTree+                   {-# LINE 11757 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Placeholder _annIoriginalTree+                   {-# LINE 11763 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 11769 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 11775 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11781 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11787 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_PrefixOp :: T_Annotation ->+                           T_Name ->+                           T_ScalarExpr ->+                           T_ScalarExpr+_sem_ScalarExpr_PrefixOp ann_ opName_ arg_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _argOodbcFunction :: Bool+              _opNameOtpe :: (Either [TypeError] TypeExtra)+              _tpe :: (Either [TypeError] TypeExtra)+              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))+              _argOexpectedType :: (Maybe TypeExtra)+              _argOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _opNameOcat :: Catalog+              _opNameOflags :: TypeCheckFlags+              _opNameOimCast :: (Maybe TypeExtra)+              _argOassignmentCastContext :: Bool+              _argOcat :: Catalog+              _argOdownEnv :: Environment+              _argOflags :: TypeCheckFlags+              _argOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _opNameIannotatedTree :: Name+              _opNameIoriginalTree :: Name+              _argIannotatedTree :: ScalarExpr+              _argIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _argIoriginalTree :: ScalarExpr+              _argIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 11855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 11861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 11867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 11873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 11884 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 11890 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 176, column 26)+              _argOodbcFunction =+                  ({-# LINE 176 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 11896 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 211, column 9)+              _opNameOtpe =+                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 11902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 365, column 10)+              _tpe =+                  ({-# LINE 365 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   fmap snd _ttpe+                   {-# LINE 11908 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 434, column 10)+              _ttpe =+                  ({-# LINE 434 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals [_argIoriginalTree]) [_argIupType]+                   {-# LINE 11914 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 435, column 10)+              _argOexpectedType =+                  ({-# LINE 435 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _ttpe     of+                     Right ([t],_) -> Just t+                     _ -> Nothing+                   {-# LINE 11922 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 457, column 9)+              _argOexpectedCast =+                  ({-# LINE 457 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 11928 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PrefixOp _annIannotatedTree _opNameIannotatedTree _argIannotatedTree+                   {-# LINE 11934 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PrefixOp _annIoriginalTree _opNameIoriginalTree _argIoriginalTree+                   {-# LINE 11940 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 11946 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 11952 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11958 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11964 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11970 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 11976 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 11982 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 11988 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 11994 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 12000 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12006 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12012 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _opNameIannotatedTree,_opNameIoriginalTree) =+                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe+              ( _argIannotatedTree,_argIcolExprs,_argIoriginalTree,_argIupType) =+                  arg_ _argOassignmentCastContext _argOcat _argOdownEnv _argOexpectedCast _argOexpectedType _argOflags _argOimCast _argOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_PostfixOp :: T_Annotation ->+                            T_Name ->+                            T_ScalarExpr ->+                            T_ScalarExpr+_sem_ScalarExpr_PostfixOp ann_ opName_ arg_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _argOodbcFunction :: Bool+              _opNameOtpe :: (Either [TypeError] TypeExtra)+              _tpe :: (Either [TypeError] TypeExtra)+              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))+              _argOexpectedType :: (Maybe TypeExtra)+              _argOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _opNameOcat :: Catalog+              _opNameOflags :: TypeCheckFlags+              _opNameOimCast :: (Maybe TypeExtra)+              _argOassignmentCastContext :: Bool+              _argOcat :: Catalog+              _argOdownEnv :: Environment+              _argOflags :: TypeCheckFlags+              _argOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _opNameIannotatedTree :: Name+              _opNameIoriginalTree :: Name+              _argIannotatedTree :: ScalarExpr+              _argIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _argIoriginalTree :: ScalarExpr+              _argIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 12084 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 12090 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 12096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 12102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 12113 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 12119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 176, column 26)+              _argOodbcFunction =+                  ({-# LINE 176 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12125 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 211, column 9)+              _opNameOtpe =+                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 12131 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 365, column 10)+              _tpe =+                  ({-# LINE 365 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   fmap snd _ttpe+                   {-# LINE 12137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 434, column 10)+              _ttpe =+                  ({-# LINE 434 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals [_argIoriginalTree]) [_argIupType]+                   {-# LINE 12143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 435, column 10)+              _argOexpectedType =+                  ({-# LINE 435 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _ttpe     of+                     Right ([t],_) -> Just t+                     _ -> Nothing+                   {-# LINE 12151 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 457, column 9)+              _argOexpectedCast =+                  ({-# LINE 457 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PostfixOp _annIannotatedTree _opNameIannotatedTree _argIannotatedTree+                   {-# LINE 12163 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PostfixOp _annIoriginalTree _opNameIoriginalTree _argIoriginalTree+                   {-# LINE 12169 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 12175 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 12181 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12187 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12193 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12205 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12211 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 12217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12223 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 12229 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12235 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12241 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _opNameIannotatedTree,_opNameIoriginalTree) =+                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe+              ( _argIannotatedTree,_argIcolExprs,_argIoriginalTree,_argIupType) =+                  arg_ _argOassignmentCastContext _argOcat _argOdownEnv _argOexpectedCast _argOexpectedType _argOflags _argOimCast _argOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_BinaryOp :: T_Annotation ->+                           T_Name ->+                           T_ScalarExpr ->+                           T_ScalarExpr ->+                           T_ScalarExpr+_sem_ScalarExpr_BinaryOp ann_ opName_ arg0_ arg1_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _arg0OodbcFunction :: Bool+              _arg1OodbcFunction :: Bool+              _opNameOtpe :: (Either [TypeError] TypeExtra)+              _tpe :: (Either [TypeError] TypeExtra)+              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))+              _arg0OexpectedType :: (Maybe TypeExtra)+              _arg1OexpectedType :: (Maybe TypeExtra)+              _arg0OexpectedCast :: Bool+              _arg1OexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _opNameOcat :: Catalog+              _opNameOflags :: TypeCheckFlags+              _opNameOimCast :: (Maybe TypeExtra)+              _arg0OassignmentCastContext :: Bool+              _arg0Ocat :: Catalog+              _arg0OdownEnv :: Environment+              _arg0Oflags :: TypeCheckFlags+              _arg0OimCast :: (Maybe TypeExtra)+              _arg1OassignmentCastContext :: Bool+              _arg1Ocat :: Catalog+              _arg1OdownEnv :: Environment+              _arg1Oflags :: TypeCheckFlags+              _arg1OimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _opNameIannotatedTree :: Name+              _opNameIoriginalTree :: Name+              _arg0IannotatedTree :: ScalarExpr+              _arg0IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _arg0IoriginalTree :: ScalarExpr+              _arg0IupType :: (Maybe TypeExtra)+              _arg1IannotatedTree :: ScalarExpr+              _arg1IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _arg1IoriginalTree :: ScalarExpr+              _arg1IupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 12326 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 12332 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 12338 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 12344 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 12355 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 12361 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 177, column 16)+              _arg0OodbcFunction =+                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12367 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 178, column 16)+              _arg1OodbcFunction =+                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12373 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 211, column 9)+              _opNameOtpe =+                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 12379 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 365, column 10)+              _tpe =+                  ({-# LINE 365 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   fmap snd _ttpe+                   {-# LINE 12385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 426, column 10)+              _ttpe =+                  ({-# LINE 426 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   tcAppLike (tcfDialect _lhsIflags)+                             _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals [_arg0IoriginalTree,_arg1IoriginalTree])+                             [_arg0IupType,_arg1IupType]+                   {-# LINE 12393 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 429, column 10)+              (_arg0OexpectedType,_arg1OexpectedType) =+                  ({-# LINE 429 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _ttpe     of+                     Right ([t0,t1],_) -> (Just t0,Just t1)+                     _ -> (Nothing,Nothing)+                   {-# LINE 12401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 459, column 9)+              _arg0OexpectedCast =+                  ({-# LINE 459 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 460, column 9)+              _arg1OexpectedCast =+                  ({-# LINE 460 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   BinaryOp _annIannotatedTree _opNameIannotatedTree _arg0IannotatedTree _arg1IannotatedTree+                   {-# LINE 12419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   BinaryOp _annIoriginalTree _opNameIoriginalTree _arg0IoriginalTree _arg1IoriginalTree+                   {-# LINE 12425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 12431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 12437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12455 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12461 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12467 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg0OassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 12473 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg0Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12479 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg0OdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 12485 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg0Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12491 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg0OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12497 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg1OassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 12503 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12509 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg1OdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 12515 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12521 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _arg1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12527 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _opNameIannotatedTree,_opNameIoriginalTree) =+                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe+              ( _arg0IannotatedTree,_arg0IcolExprs,_arg0IoriginalTree,_arg0IupType) =+                  arg0_ _arg0OassignmentCastContext _arg0Ocat _arg0OdownEnv _arg0OexpectedCast _arg0OexpectedType _arg0Oflags _arg0OimCast _arg0OodbcFunction+              ( _arg1IannotatedTree,_arg1IcolExprs,_arg1IoriginalTree,_arg1IupType) =+                  arg1_ _arg1OassignmentCastContext _arg1Ocat _arg1OdownEnv _arg1OexpectedCast _arg1OexpectedType _arg1Oflags _arg1OimCast _arg1OodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_SpecialOp :: T_Annotation ->+                            T_Name ->+                            T_ScalarExprList ->+                            T_ScalarExpr+_sem_ScalarExpr_SpecialOp ann_ opName_ args_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _opNameOtpe :: (Either [TypeError] TypeExtra)+              _tpe :: (Either [TypeError] TypeExtra)+              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))+              _argsOexpectedTypes :: ([TypeExtra])+              _argsOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _opNameOcat :: Catalog+              _opNameOflags :: TypeCheckFlags+              _opNameOimCast :: (Maybe TypeExtra)+              _argsOassignmentCastContext :: Bool+              _argsOcat :: Catalog+              _argsOdownEnv :: Environment+              _argsOflags :: TypeCheckFlags+              _argsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _opNameIannotatedTree :: Name+              _opNameIoriginalTree :: Name+              _argsIannotatedTree :: ScalarExprList+              _argsIoriginalTree :: ScalarExprList+              _argsIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 12599 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 12605 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 12611 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 12617 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 12628 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 12634 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 211, column 9)+              _opNameOtpe =+                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 12640 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 365, column 10)+              _tpe =+                  ({-# LINE 365 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   fmap snd _ttpe+                   {-# LINE 12646 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 440, column 10)+              _ttpe =+                  ({-# LINE 440 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents _opNameIoriginalTree) (getMaybeIntsFromLiterals _argsIoriginalTree) _argsIupTypes+                   {-# LINE 12652 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 441, column 10)+              _argsOexpectedTypes =+                  ({-# LINE 441 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const []) id $ fmap fst _ttpe+                   {-# LINE 12658 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 455, column 9)+              _argsOexpectedCast =+                  ({-# LINE 455 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12664 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SpecialOp _annIannotatedTree _opNameIannotatedTree _argsIannotatedTree+                   {-# LINE 12670 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SpecialOp _annIoriginalTree _opNameIoriginalTree _argsIoriginalTree+                   {-# LINE 12676 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 12682 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 12688 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12694 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12712 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _opNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12718 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 12724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12730 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 12736 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _opNameIannotatedTree,_opNameIoriginalTree) =+                  opName_ _opNameOcat _opNameOflags _opNameOimCast _opNameOtpe+              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =+                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Extract :: T_Annotation ->+                          ExtractField ->+                          T_ScalarExpr ->+                          T_ScalarExpr+_sem_ScalarExpr_Extract ann_ field_ e_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _eOodbcFunction :: Bool+              _eOexpectedType :: (Maybe TypeExtra)+              _eOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _eOassignmentCastContext :: Bool+              _eOcat :: Catalog+              _eOdownEnv :: Environment+              _eOflags :: TypeCheckFlags+              _eOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _eIannotatedTree :: ScalarExpr+              _eIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _eIoriginalTree :: ScalarExpr+              _eIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 12812 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 12818 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 12824 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 12830 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 12841 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 12847 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 172, column 15)+              _eOodbcFunction =+                  ({-# LINE 172 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12853 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 285, column 9)+              _tpe =+                  ({-# LINE 285 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   x <- maybe (Left []) Right _eIupType+                   if (teType x) `elem` (map ScalarType $ diDatetimeTypes $ tcfDialect _lhsIflags)+                     then do+                          i <- ScalarType <$> _dialectTypeName     "int"+                          return $ TypeExtra i Nothing Nothing $ teNullable x+                     else Left [NoMatchingOperator "extract" [teType x]]+                   {-# LINE 12865 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 293, column 9)+              _eOexpectedType =+                  ({-# LINE 293 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   x <- _eIupType+                   either (const Nothing)+                          (Just . TypeExtra (teType x) Nothing Nothing . teNullable)+                          _tpe+                   {-# LINE 12875 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 299, column 9)+              _eOexpectedCast =+                  ({-# LINE 299 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 12881 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Extract _annIannotatedTree field_ _eIannotatedTree+                   {-# LINE 12887 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Extract _annIoriginalTree field_ _eIoriginalTree+                   {-# LINE 12893 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 12899 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 12905 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12911 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12917 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _eOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 12923 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _eOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 12929 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _eOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 12935 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _eOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 12941 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _eOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 12947 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _eIannotatedTree,_eIcolExprs,_eIoriginalTree,_eIupType) =+                  e_ _eOassignmentCastContext _eOcat _eOdownEnv _eOexpectedCast _eOexpectedType _eOflags _eOimCast _eOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_App :: T_Annotation ->+                      T_Name ->+                      T_ScalarExprList ->+                      T_ScalarExpr+_sem_ScalarExpr_App ann_ funName_ args_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _funNameOtpe :: (Either [TypeError] TypeExtra)+              _tpe :: (Either [TypeError] TypeExtra)+              _argsOexpectedTypes :: ([TypeExtra])+              _ttpe :: (Either [TypeError] ([TypeExtra],TypeExtra))+              _argsOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _funNameOcat :: Catalog+              _funNameOflags :: TypeCheckFlags+              _funNameOimCast :: (Maybe TypeExtra)+              _argsOassignmentCastContext :: Bool+              _argsOcat :: Catalog+              _argsOdownEnv :: Environment+              _argsOflags :: TypeCheckFlags+              _argsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _funNameIannotatedTree :: Name+              _funNameIoriginalTree :: Name+              _argsIannotatedTree :: ScalarExprList+              _argsIoriginalTree :: ScalarExprList+              _argsIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 13015 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 13021 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 13027 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 13033 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 13044 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 13050 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 209, column 9)+              _funNameOtpe =+                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 13056 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 365, column 10)+              _tpe =+                  ({-# LINE 365 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   fmap snd _ttpe+                   {-# LINE 13062 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 367, column 10)+              _argsOexpectedTypes =+                  ({-# LINE 367 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const []) id $ fmap fst _ttpe+                   {-# LINE 13068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 381, column 10)+              _funName =+                  ({-# LINE 381 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   let y = if _lhsIodbcFunction+                           then let f [] = []+                                    f [Nmc x] = [Nmc $ "!odbc-" ++ x]+                                    f [QNmc x] = [QNmc $ "!odbc-" ++ x]+                                    f [x] = [x]+                                    f (x:xs) = x:f xs+                                in (\(Name a nms) -> Name a (f nms)) _funNameIoriginalTree+                           else _funNameIoriginalTree+                   in                    y+                   {-# LINE 13082 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 404, column 10)+              _ttpe =+                  ({-# LINE 404 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _originalTree of+                     (App _ (Name _ [Nmc "count"]) [Star _]) ->+                         tcAppLike (tcfDialect _lhsIflags)+                                   _lhsIcat (nameComponents _funName    )+                                   (getMaybeIntsFromLiterals _argsIoriginalTree)+                                   [Just $ mkTypeExtraNN UnknownType]+                     (App _ (Name _ [Nmc n]) [_,Identifier _ (Name _ [Nmc tyi])])+                         | _lhsIodbcFunction && map toLower n == "convert" -> do+                         (ts,_r) <- do+                                   t <- _dialectTypeName     "int"+                                   tcAppLike (tcfDialect _lhsIflags)+                                     _lhsIcat (nameComponents _funName    ) (getMaybeIntsFromLiterals _argsIoriginalTree)+                                     [Just $ mkTypeExtraNN UnknownType, Just $ mkTypeExtraNN $ ScalarType t]+                         r' <- maybe (Left [UnrecognisedIdentifier $ T.pack tyi]) (Right . mkTypeExtra)+                                  $ lookup (map toLower tyi) odbcConvertTypes+                         Right (ts, r')+                     _ -> tcAppLike (tcfDialect _lhsIflags)+                                    _lhsIcat (nameComponents _funName    ) (getMaybeIntsFromLiterals _argsIoriginalTree) _argsIupTypes+                   {-# LINE 13105 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 455, column 9)+              _argsOexpectedCast =+                  ({-# LINE 455 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13111 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   App _annIannotatedTree _funNameIannotatedTree _argsIannotatedTree+                   {-# LINE 13117 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   App _annIoriginalTree _funNameIoriginalTree _argsIoriginalTree+                   {-# LINE 13123 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 13129 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 13135 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13141 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13147 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _funNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13153 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _funNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13159 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _funNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13165 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 13171 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13177 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 13183 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13189 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13195 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _funNameIannotatedTree,_funNameIoriginalTree) =+                  funName_ _funNameOcat _funNameOflags _funNameOimCast _funNameOtpe+              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =+                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_AggregateApp :: T_Annotation ->+                               Distinct ->+                               T_ScalarExpr ->+                               T_ScalarExprDirectionPairList ->+                               T_ScalarExpr+_sem_ScalarExpr_AggregateApp ann_ aggDistinct_ fn_ orderBy_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _fnOodbcFunction :: Bool+              _fnOexpectedCast :: Bool+              _fnOexpectedType :: (Maybe TypeExtra)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _fnOassignmentCastContext :: Bool+              _fnOcat :: Catalog+              _fnOdownEnv :: Environment+              _fnOflags :: TypeCheckFlags+              _fnOimCast :: (Maybe TypeExtra)+              _orderByOcat :: Catalog+              _orderByOdownEnv :: Environment+              _orderByOflags :: TypeCheckFlags+              _orderByOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _fnIannotatedTree :: ScalarExpr+              _fnIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _fnIoriginalTree :: ScalarExpr+              _fnIupType :: (Maybe TypeExtra)+              _orderByIannotatedTree :: ScalarExprDirectionPairList+              _orderByIoriginalTree :: ScalarExprDirectionPairList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 13266 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 13272 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 13278 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 13284 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 13295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 13301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 179, column 20)+              _fnOodbcFunction =+                  ({-# LINE 179 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 443, column 10)+              _tpe =+                  ({-# LINE 443 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _fnIoriginalTree of+                     (App _ fnm@(Name _ [Nmc "count"]) [Star _]) ->+                          fmap snd $ tcAppLike (tcfDialect _lhsIflags) _lhsIcat (nameComponents fnm) [] [Just $ mkTypeExtraNN UnknownType]+                     _ -> maybe (Left []) Right _fnIupType+                   {-# LINE 13316 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 462, column 9)+              _fnOexpectedCast =+                  ({-# LINE 462 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13322 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 753, column 28)+              _fnOexpectedType =+                  ({-# LINE 753 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 13328 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AggregateApp _annIannotatedTree aggDistinct_ _fnIannotatedTree _orderByIannotatedTree+                   {-# LINE 13334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AggregateApp _annIoriginalTree aggDistinct_ _fnIoriginalTree _orderByIoriginalTree+                   {-# LINE 13340 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 13346 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 13352 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13358 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13364 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 13370 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13376 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 13382 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13388 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13394 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13400 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOdownEnv =+                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 13406 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13412 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13418 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _fnIannotatedTree,_fnIcolExprs,_fnIoriginalTree,_fnIupType) =+                  fn_ _fnOassignmentCastContext _fnOcat _fnOdownEnv _fnOexpectedCast _fnOexpectedType _fnOflags _fnOimCast _fnOodbcFunction+              ( _orderByIannotatedTree,_orderByIoriginalTree) =+                  orderBy_ _orderByOcat _orderByOdownEnv _orderByOflags _orderByOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_WindowApp :: T_Annotation ->+                            T_ScalarExpr ->+                            T_ScalarExprList ->+                            T_ScalarExprDirectionPairList ->+                            (Maybe FrameClause) ->+                            T_ScalarExpr+_sem_ScalarExpr_WindowApp ann_ fn_ partitionBy_ orderBy_ frm_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _fnOodbcFunction :: Bool+              _fnOexpectedCast :: Bool+              _partitionByOexpectedCast :: Bool+              _fnOexpectedType :: (Maybe TypeExtra)+              _partitionByOexpectedTypes :: ([TypeExtra])+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _fnOassignmentCastContext :: Bool+              _fnOcat :: Catalog+              _fnOdownEnv :: Environment+              _fnOflags :: TypeCheckFlags+              _fnOimCast :: (Maybe TypeExtra)+              _partitionByOassignmentCastContext :: Bool+              _partitionByOcat :: Catalog+              _partitionByOdownEnv :: Environment+              _partitionByOflags :: TypeCheckFlags+              _partitionByOimCast :: (Maybe TypeExtra)+              _orderByOcat :: Catalog+              _orderByOdownEnv :: Environment+              _orderByOflags :: TypeCheckFlags+              _orderByOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _fnIannotatedTree :: ScalarExpr+              _fnIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _fnIoriginalTree :: ScalarExpr+              _fnIupType :: (Maybe TypeExtra)+              _partitionByIannotatedTree :: ScalarExprList+              _partitionByIoriginalTree :: ScalarExprList+              _partitionByIupTypes :: ([Maybe TypeExtra])+              _orderByIannotatedTree :: ScalarExprDirectionPairList+              _orderByIoriginalTree :: ScalarExprDirectionPairList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 13500 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 13506 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 13512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 13518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 13529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 13535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 180, column 17)+              _fnOodbcFunction =+                  ({-# LINE 180 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 449, column 10)+              _tpe =+                  ({-# LINE 449 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right _fnIupType+                   {-# LINE 13547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 462, column 9)+              _fnOexpectedCast =+                  ({-# LINE 462 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 465, column 9)+              _partitionByOexpectedCast =+                  ({-# LINE 465 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 753, column 28)+              _fnOexpectedType =+                  ({-# LINE 753 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 13565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 775, column 15)+              _partitionByOexpectedTypes =+                  ({-# LINE 775 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   []+                   {-# LINE 13571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WindowApp _annIannotatedTree _fnIannotatedTree _partitionByIannotatedTree _orderByIannotatedTree frm_+                   {-# LINE 13577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WindowApp _annIoriginalTree _fnIoriginalTree _partitionByIoriginalTree _orderByIoriginalTree frm_+                   {-# LINE 13583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 13589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 13595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13607 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 13613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 13625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionByOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 13643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionByOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionByOdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 13655 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionByOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13661 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionByOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13667 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13673 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOdownEnv =+                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 13679 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13685 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _orderByOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13691 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _fnIannotatedTree,_fnIcolExprs,_fnIoriginalTree,_fnIupType) =+                  fn_ _fnOassignmentCastContext _fnOcat _fnOdownEnv _fnOexpectedCast _fnOexpectedType _fnOflags _fnOimCast _fnOodbcFunction+              ( _partitionByIannotatedTree,_partitionByIoriginalTree,_partitionByIupTypes) =+                  partitionBy_ _partitionByOassignmentCastContext _partitionByOcat _partitionByOdownEnv _partitionByOexpectedCast _partitionByOexpectedTypes _partitionByOflags _partitionByOimCast+              ( _orderByIannotatedTree,_orderByIoriginalTree) =+                  orderBy_ _orderByOcat _orderByOdownEnv _orderByOflags _orderByOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Cast :: T_Annotation ->+                       T_ScalarExpr ->+                       T_TypeName ->+                       T_ScalarExpr+_sem_ScalarExpr_Cast ann_ expr_ tn_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _exprOodbcFunction :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _exprOassignmentCastContext :: Bool+              _exprOcat :: Catalog+              _exprOdownEnv :: Environment+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _tnOcat :: Catalog+              _tnOflags :: TypeCheckFlags+              _tnOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              _tnIannotatedTree :: TypeName+              _tnInamedType :: (Maybe TypeExtra)+              _tnIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 13763 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 13769 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 13775 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 13781 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 13792 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 13798 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 173, column 12)+              _exprOodbcFunction =+                  ({-# LINE 173 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13804 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 273, column 10)+              _tpe =+                  ({-# LINE 273 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   let nullability = fromMaybe False $ teNullable <$> _exprIupType+                       setNullability te = te{teNullable = nullability}+                   in maybe (Left []) (Right . setNullability) _tnInamedType+                   {-# LINE 13812 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 277, column 10)+              _exprOexpectedType =+                  ({-# LINE 277 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 13818 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 278, column 10)+              _exprOexpectedCast =+                  ({-# LINE 278 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 13824 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Cast _annIannotatedTree _exprIannotatedTree _tnIannotatedTree+                   {-# LINE 13830 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Cast _annIoriginalTree _exprIoriginalTree _tnIoriginalTree+                   {-# LINE 13836 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 13842 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 13848 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13854 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13860 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 13866 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13872 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 13878 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13884 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13890 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 13896 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 13902 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 13908 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+              ( _tnIannotatedTree,_tnInamedType,_tnIoriginalTree) =+                  tn_ _tnOcat _tnOflags _tnOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_ImplicitCast :: T_Annotation ->+                               T_ScalarExpr ->+                               TypeExtra ->+                               T_ScalarExpr+_sem_ScalarExpr_ImplicitCast ann_ expr_ te_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _exprOodbcFunction :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _exprOassignmentCastContext :: Bool+              _exprOcat :: Catalog+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 13972 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 13978 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 13984 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 13990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 14001 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 14007 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 174, column 20)+              _exprOodbcFunction =+                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 14013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 280, column 9)+              _tpe =+                  ({-# LINE 280 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Right te_+                   {-# LINE 14019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 281, column 9)+              _exprOexpectedType =+                  ({-# LINE 281 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 14025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ImplicitCast _annIannotatedTree _exprIannotatedTree te_+                   {-# LINE 14031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ImplicitCast _annIoriginalTree _exprIoriginalTree te_+                   {-# LINE 14037 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 14043 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 14049 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14055 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14061 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 14067 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14073 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 14079 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOexpectedCast =+                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 14085 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14091 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 14097 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Case :: T_Annotation ->+                       T_CaseScalarExprListScalarExprPairList ->+                       T_MaybeScalarExpr ->+                       T_ScalarExpr+_sem_ScalarExpr_Case ann_ cases_ els_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _casesOwhenExpectedType :: (Maybe TypeExtra)+              _casesOthenExpectedType :: (Maybe TypeExtra)+              _elsOexpectedType :: (Maybe TypeExtra)+              _elsOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _casesOcat :: Catalog+              _casesOdownEnv :: Environment+              _casesOflags :: TypeCheckFlags+              _casesOimCast :: (Maybe TypeExtra)+              _elsOassignmentCastContext :: Bool+              _elsOcat :: Catalog+              _elsOdownEnv :: Environment+              _elsOflags :: TypeCheckFlags+              _elsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _casesIannotatedTree :: CaseScalarExprListScalarExprPairList+              _casesIoriginalTree :: CaseScalarExprListScalarExprPairList+              _casesIthenTypes :: ([Maybe TypeExtra])+              _casesIupTypes :: ([Maybe TypeExtra])+              _casesIwhenTypes :: ([[Maybe TypeExtra]])+              _elsIannotatedTree :: MaybeScalarExpr+              _elsIoriginalTree :: MaybeScalarExpr+              _elsIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 14168 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 14174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14180 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 14186 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 14197 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 14203 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 559, column 9)+              _whenTypes =+                  ({-# LINE 559 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _casesIwhenTypes+                   {-# LINE 14209 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 560, column 9)+              _thenTypes =+                  ({-# LINE 560 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIupType+                   {-# LINE 14215 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 562, column 9)+              _tpe =+                  ({-# LINE 562 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   wt <- mapM (maybe (Left []) Right) $ concat _whenTypes+                   bt <- ScalarType <$> _dialectTypeName     "boolean"+                   when (any ((/= bt) . teType) wt)+                       $ Left [WrongTypes bt $ map teType wt]+                   tt <- mapM (maybe (Left []) Right) _thenTypes+                   tse <- resolveResultSetTypeExtra _lhsIcat tt+                   return $ if isNothing _elsIoriginalTree+                            then tse{teNullable=True}+                            else tse+                   {-# LINE 14230 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 574, column 9)+              _casesOwhenExpectedType =+                  ({-# LINE 574 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   ws <- sequence $ concat _whenTypes+                   w <- either (const Nothing) Just $ resolveResultSetTypeExtra _lhsIcat ws+                   bt <- ScalarType <$> either (const Nothing) Just (_dialectTypeName     "boolean")+                   Just $ TypeExtra bt Nothing Nothing $ teNullable w+                   {-# LINE 14240 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 580, column 9)+              _casesOthenExpectedType =+                  ({-# LINE 580 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14246 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 581, column 9)+              _elsOexpectedType =+                  ({-# LINE 581 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14252 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 582, column 9)+              _elsOexpectedCast =+                  ({-# LINE 582 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   True+                   {-# LINE 14258 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Case _annIannotatedTree _casesIannotatedTree _elsIannotatedTree+                   {-# LINE 14264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Case _annIoriginalTree _casesIoriginalTree _elsIoriginalTree+                   {-# LINE 14270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 14276 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 14282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14288 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14294 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14300 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOdownEnv =+                  ({-# LINE 554 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 14306 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14312 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 14318 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 14324 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14330 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 14336 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14342 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 14348 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _casesIannotatedTree,_casesIoriginalTree,_casesIthenTypes,_casesIupTypes,_casesIwhenTypes) =+                  cases_ _casesOcat _casesOdownEnv _casesOflags _casesOimCast _casesOthenExpectedType _casesOwhenExpectedType+              ( _elsIannotatedTree,_elsIoriginalTree,_elsIupType) =+                  els_ _elsOassignmentCastContext _elsOcat _elsOdownEnv _elsOexpectedCast _elsOexpectedType _elsOflags _elsOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_CaseSimple :: T_Annotation ->+                             T_ScalarExpr ->+                             T_CaseScalarExprListScalarExprPairList ->+                             T_MaybeScalarExpr ->+                             T_ScalarExpr+_sem_ScalarExpr_CaseSimple ann_ value_ cases_ els_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _valueOodbcFunction :: Bool+              _casesOwhenExpectedType :: (Maybe TypeExtra)+              _valueOexpectedType :: (Maybe TypeExtra)+              _valueOexpectedCast :: Bool+              _casesOthenExpectedType :: (Maybe TypeExtra)+              _elsOexpectedType :: (Maybe TypeExtra)+              _elsOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _valueOassignmentCastContext :: Bool+              _valueOcat :: Catalog+              _valueOdownEnv :: Environment+              _valueOflags :: TypeCheckFlags+              _valueOimCast :: (Maybe TypeExtra)+              _casesOcat :: Catalog+              _casesOdownEnv :: Environment+              _casesOflags :: TypeCheckFlags+              _casesOimCast :: (Maybe TypeExtra)+              _elsOassignmentCastContext :: Bool+              _elsOcat :: Catalog+              _elsOdownEnv :: Environment+              _elsOflags :: TypeCheckFlags+              _elsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _valueIannotatedTree :: ScalarExpr+              _valueIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _valueIoriginalTree :: ScalarExpr+              _valueIupType :: (Maybe TypeExtra)+              _casesIannotatedTree :: CaseScalarExprListScalarExprPairList+              _casesIoriginalTree :: CaseScalarExprListScalarExprPairList+              _casesIthenTypes :: ([Maybe TypeExtra])+              _casesIupTypes :: ([Maybe TypeExtra])+              _casesIwhenTypes :: ([[Maybe TypeExtra]])+              _elsIannotatedTree :: MaybeScalarExpr+              _elsIoriginalTree :: MaybeScalarExpr+              _elsIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 14434 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 14440 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14446 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 14452 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 14463 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 14469 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 175, column 18)+              _valueOodbcFunction =+                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 14475 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 559, column 9)+              _whenTypes =+                  ({-# LINE 559 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _casesIwhenTypes+                   {-# LINE 14481 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 560, column 9)+              _thenTypes =+                  ({-# LINE 560 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _casesIthenTypes ++ maybe [] ((:[]) . Just) _elsIupType+                   {-# LINE 14487 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 584, column 9)+              _whent =+                  ({-# LINE 584 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   wt <- mapM (maybe (Left []) Right) $ concat _whenTypes+                   vt <- maybe (Left []) Right _valueIupType+                   resolveResultSetTypeExtra _lhsIcat (vt : wt)+                   {-# LINE 14496 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 589, column 9)+              _tpe =+                  ({-# LINE 589 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   _ <- _whent+                   tt <- mapM (maybe (Left []) Right) _thenTypes+                   resolveResultSetTypeExtra _lhsIcat tt+                   {-# LINE 14505 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 594, column 9)+              _casesOwhenExpectedType =+                  ({-# LINE 594 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _whent+                   {-# LINE 14511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 595, column 9)+              _valueOexpectedType =+                  ({-# LINE 595 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _whent+                   {-# LINE 14517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 596, column 9)+              _valueOexpectedCast =+                  ({-# LINE 596 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 14523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 597, column 9)+              _casesOthenExpectedType =+                  ({-# LINE 597 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 598, column 9)+              _elsOexpectedType =+                  ({-# LINE 598 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 599, column 9)+              _elsOexpectedCast =+                  ({-# LINE 599 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   True+                   {-# LINE 14541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CaseSimple _annIannotatedTree _valueIannotatedTree _casesIannotatedTree _elsIannotatedTree+                   {-# LINE 14547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CaseSimple _annIoriginalTree _valueIoriginalTree _casesIoriginalTree _elsIoriginalTree+                   {-# LINE 14553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 14559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 14565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 14583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 14595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 14607 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOdownEnv =+                  ({-# LINE 554 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 14619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 14631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 14637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 14649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14655 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 14661 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _valueIannotatedTree,_valueIcolExprs,_valueIoriginalTree,_valueIupType) =+                  value_ _valueOassignmentCastContext _valueOcat _valueOdownEnv _valueOexpectedCast _valueOexpectedType _valueOflags _valueOimCast _valueOodbcFunction+              ( _casesIannotatedTree,_casesIoriginalTree,_casesIthenTypes,_casesIupTypes,_casesIwhenTypes) =+                  cases_ _casesOcat _casesOdownEnv _casesOflags _casesOimCast _casesOthenExpectedType _casesOwhenExpectedType+              ( _elsIannotatedTree,_elsIoriginalTree,_elsIupType) =+                  els_ _elsOassignmentCastContext _elsOcat _elsOdownEnv _elsOexpectedCast _elsOexpectedType _elsOflags _elsOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Parens :: T_Annotation ->+                         T_ScalarExpr ->+                         T_ScalarExpr+_sem_ScalarExpr_Parens ann_ ex_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _exOodbcFunction :: Bool+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _exOassignmentCastContext :: Bool+              _exOcat :: Catalog+              _exOdownEnv :: Environment+              _exOexpectedCast :: Bool+              _exOexpectedType :: (Maybe TypeExtra)+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: ScalarExpr+              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exIoriginalTree :: ScalarExpr+              _exIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 14726 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 14732 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 14744 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 14755 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 14761 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 182, column 14)+              _exOodbcFunction =+                  ({-# LINE 182 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 14767 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 615, column 5)+              _tpe =+                  ({-# LINE 615 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right _exIupType+                   {-# LINE 14773 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Parens _annIannotatedTree _exIannotatedTree+                   {-# LINE 14779 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Parens _annIoriginalTree _exIoriginalTree+                   {-# LINE 14785 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 14791 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 14797 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14803 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14809 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 14815 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 14821 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 14827 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOexpectedCast =+                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 14833 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOexpectedType =+                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 14839 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 14845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 14851 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_InPredicate :: T_Annotation ->+                              T_ScalarExpr ->+                              Bool ->+                              T_InList ->+                              T_ScalarExpr+_sem_ScalarExpr_InPredicate ann_ expr_ i_ list_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _exprOodbcFunction :: Bool+              _rt :: (Either [TypeError] TypeExtra)+              _listOexpectedType :: (Maybe TypeExtra)+              _exprOexpectedType :: (Maybe TypeExtra)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _exprOassignmentCastContext :: Bool+              _exprOcat :: Catalog+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _listOcat :: Catalog+              _listOdownEnv :: Environment+              _listOexpectedCast :: Bool+              _listOflags :: TypeCheckFlags+              _listOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              _listIannotatedTree :: InList+              _listIlistType :: (Either [TypeError] TypeExtra)+              _listIoriginalTree :: InList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 14924 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 14930 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 14936 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 14942 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 14953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 14959 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 181, column 19)+              _exprOodbcFunction =+                  ({-# LINE 181 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 14965 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 669, column 9)+              _rt =+                  ({-# LINE 669 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   lt <- _listIlistType+                   expt <- maybe (Left []) Right _exprIupType+                   resolveResultSetTypeExtra _lhsIcat [expt, lt]+                   {-# LINE 14974 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 673, column 9)+              _tpe =+                  ({-# LINE 673 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   r <- _rt+                   bt <- ScalarType <$> _dialectTypeName     "boolean"+                   return $ TypeExtra bt Nothing Nothing $ teNullable r+                   {-# LINE 14983 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 677, column 9)+              _listOexpectedType =+                  ({-# LINE 677 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _rt+                   {-# LINE 14989 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 678, column 9)+              _exprOexpectedType =+                  ({-# LINE 678 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _rt+                   {-# LINE 14995 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   InPredicate _annIannotatedTree _exprIannotatedTree i_ _listIannotatedTree+                   {-# LINE 15001 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   InPredicate _annIoriginalTree _exprIoriginalTree i_ _listIoriginalTree+                   {-# LINE 15007 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 15013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 15019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 15037 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15043 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 15049 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOexpectedCast =+                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 15055 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15061 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 15067 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _listOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15073 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _listOdownEnv =+                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 15079 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _listOexpectedCast =+                  ({-# LINE 662 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 15085 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _listOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15091 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _listOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 15097 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+              ( _listIannotatedTree,_listIlistType,_listIoriginalTree) =+                  list_ _listOcat _listOdownEnv _listOexpectedCast _listOexpectedType _listOflags _listOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_Exists :: T_Annotation ->+                         T_QueryExpr ->+                         T_ScalarExpr+_sem_ScalarExpr_Exists ann_ sel_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _selOouterDownEnv :: (Maybe Environment)+              _selOexpectedType :: (Maybe [TypeExtra])+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _selOassignmentCastContext :: Bool+              _selOcat :: Catalog+              _selOflags :: TypeCheckFlags+              _selOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _selIannotatedTree :: QueryExpr+              _selIoriginalTree :: QueryExpr+              _selIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 15157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 15163 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 15169 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 15175 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 15186 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 15192 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 628, column 9)+              _tpe =+                  ({-# LINE 628 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   (mkTypeExtraNN . ScalarType) <$> (_dialectTypeName     "boolean")+                   {-# LINE 15198 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 650, column 9)+              _selOouterDownEnv =+                  ({-# LINE 650 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Just _lhsIdownEnv+                   {-# LINE 15204 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 652, column 9)+              _selOexpectedType =+                  ({-# LINE 652 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   liftM (map snd) _selIupType+                   {-# LINE 15210 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Exists _annIannotatedTree _selIannotatedTree+                   {-# LINE 15216 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Exists _annIoriginalTree _selIoriginalTree+                   {-# LINE 15222 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 15228 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 15234 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15240 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15246 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 15252 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15258 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15264 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 15270 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =+                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_ScalarSubQuery :: T_Annotation ->+                                 T_QueryExpr ->+                                 T_ScalarExpr+_sem_ScalarExpr_ScalarSubQuery ann_ sel_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _selOouterDownEnv :: (Maybe Environment)+              _selOexpectedType :: (Maybe [TypeExtra])+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _selOassignmentCastContext :: Bool+              _selOcat :: Catalog+              _selOflags :: TypeCheckFlags+              _selOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _selIannotatedTree :: QueryExpr+              _selIoriginalTree :: QueryExpr+              _selIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 15328 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 15334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 15340 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 15346 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 15357 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 15363 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 638, column 9)+              _tpe =+                  ({-# LINE 638 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   do+                   selType <- maybe (Left []) Right _selIupType+                   case length selType of+                     0 -> Left [InternalError "no columns in scalar subquery?"]+                     1 -> Right $ snd $ head selType+                     _ -> Right $ mkTypeExtra $ AnonymousCompositeType+                             $ map (teType . snd) selType+                   {-# LINE 15375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 648, column 9)+              _selOouterDownEnv =+                  ({-# LINE 648 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Just _lhsIdownEnv+                   {-# LINE 15381 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 652, column 9)+              _selOexpectedType =+                  ({-# LINE 652 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   liftM (map snd) _selIupType+                   {-# LINE 15387 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ScalarSubQuery _annIannotatedTree _selIannotatedTree+                   {-# LINE 15393 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ScalarSubQuery _annIoriginalTree _selIoriginalTree+                   {-# LINE 15399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 15405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 15411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 15429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 15447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =+                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_LiftApp :: T_Annotation ->+                          T_Name ->+                          LiftFlavour ->+                          T_ScalarExprList ->+                          T_ScalarExpr+_sem_ScalarExpr_LiftApp ann_ oper_ flav_ args_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _argsOexpectedCast :: Bool+              _argsOexpectedTypes :: ([TypeExtra])+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _operOcat :: Catalog+              _operOflags :: TypeCheckFlags+              _operOimCast :: (Maybe TypeExtra)+              _operOtpe :: (Either [TypeError] TypeExtra)+              _argsOassignmentCastContext :: Bool+              _argsOcat :: Catalog+              _argsOdownEnv :: Environment+              _argsOflags :: TypeCheckFlags+              _argsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _operIannotatedTree :: Name+              _operIoriginalTree :: Name+              _argsIannotatedTree :: ScalarExprList+              _argsIoriginalTree :: ScalarExprList+              _argsIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 15514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 15520 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 15526 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 15532 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 15543 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 15549 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 455, column 9)+              _argsOexpectedCast =+                  ({-# LINE 455 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 15555 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 735, column 9)+              _tpe =+                  ({-# LINE 735 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 15561 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 772, column 13)+              _argsOexpectedTypes =+                  ({-# LINE 772 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   []+                   {-# LINE 15567 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   LiftApp _annIannotatedTree _operIannotatedTree flav_ _argsIannotatedTree+                   {-# LINE 15573 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   LiftApp _annIoriginalTree _operIoriginalTree flav_ _argsIoriginalTree+                   {-# LINE 15579 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 15585 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 15591 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15597 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15603 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15609 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15615 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 15621 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (from local)+              _operOtpe =+                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   _tpe+                   {-# LINE 15627 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 15633 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 15645 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15651 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 15657 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _operIannotatedTree,_operIoriginalTree) =+                  oper_ _operOcat _operOflags _operOimCast _operOtpe+              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =+                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_OdbcLiteral :: T_Annotation ->+                              OdbcLiteralType ->+                              String ->+                              T_ScalarExpr+_sem_ScalarExpr_OdbcLiteral ann_ olt_ val_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 15709 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 15715 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 15721 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 15727 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 15738 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 15744 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 307, column 10)+              _tpe =+                  ({-# LINE 307 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case olt_ of+                     OLDate -> (mkTypeExtra . ScalarType) <$> _dialectTypeName     "date"+                     OLTime -> (mkTypeExtra . ScalarType) <$> _dialectTypeName     "time"+                     OLTimestamp -> (mkTypeExtra . ScalarType) <$> _dialectTypeName     "timestamp"+                   {-# LINE 15753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   OdbcLiteral _annIannotatedTree olt_ val_+                   {-# LINE 15759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   OdbcLiteral _annIoriginalTree olt_ val_+                   {-# LINE 15765 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 15771 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 15777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_OdbcFunc :: T_Annotation ->+                           T_ScalarExpr ->+                           T_ScalarExpr+_sem_ScalarExpr_OdbcFunc ann_ ex_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe TypeExtra)+              _annOimCast :: (Maybe TypeExtra)+              _dialectTypeName :: (Text -> Either [TypeError] Text)+              _exOodbcFunction :: Bool+              _exOcat :: Catalog+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _exOassignmentCastContext :: Bool+              _exOdownEnv :: Environment+              _exOexpectedCast :: Bool+              _exOexpectedType :: (Maybe TypeExtra)+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: ScalarExpr+              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exIoriginalTree :: ScalarExpr+              _exIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 42, column 7)+              _lhsOcolExprs =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   let a = _annIoriginalTree+                       doStar is =+                         map (\((q,n),t) ->+                           let a' = a {anType = Just t}+                           in (Nmc $ T.unpack n, Just t,+                               Identifier a' $ Name a'+                                             $ [Nmc q' | let q' = T.unpack q, not $ null q']+                                               ++ [Nmc $ T.unpack n])+                           ) is+                   in case _originalTree of+                       Star _ | Right is <- E.envExpandStar Nothing _lhsIdownEnv ->+                          doStar is+                       QStar _ q | Right is <- E.envExpandStar (Just q) _lhsIdownEnv ->+                          doStar is+                       _ ->+                              [(columnName _originalTree,_upType,_annotatedTree)]+                   {-# LINE 15848 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 35, column 9)+              _annOtpe =+                  ({-# LINE 35 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _tpe+                   {-# LINE 15854 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 36, column 9)+              _upType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 15860 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 37, column 9)+              _lhsOupType =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _upType+                   {-# LINE 15866 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 38, column 9)+              _annOimCast =+                  ({-# LINE 38 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _upType     of+                      Nothing -> _lhsIexpectedType+                      Just upType -> do+                          expType <- _lhsIexpectedType+                          guard $ needsImplicitCast _lhsIexpectedCast upType expType+                          return $ implicitCastType _lhsIexpectedCast upType expType+                   {-# LINE 15877 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 45, column 9)+              _dialectTypeName =+                  ({-# LINE 45 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   maybe (Left []) Right . ansiTypeNameToDialect (tcfDialect _lhsIflags)+                   {-# LINE 15883 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 183, column 16)+              _exOodbcFunction =+                  ({-# LINE 183 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   True+                   {-# LINE 15889 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 313, column 10)+              _exOcat =+                  ({-# LINE 313 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   id _lhsIcat+                   {-# LINE 15895 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 314, column 10)+              _tpe =+                  ({-# LINE 314 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _exIoriginalTree of+                     Extract {} -> maybe (Left []) Right _exIupType+                     App {} -> maybe (Left []) Right _exIupType+                     _ -> Left [OdbcFuncBadContent]+                   {-# LINE 15904 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   OdbcFunc _annIannotatedTree _exIannotatedTree+                   {-# LINE 15910 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   OdbcFunc _annIoriginalTree _exIoriginalTree+                   {-# LINE 15916 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 15922 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 15928 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 15934 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15940 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 15946 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 15952 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOexpectedCast =+                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 15958 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOexpectedType =+                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 15964 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 15970 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 15976 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExpr_AntiScalarExpr :: String ->+                                 T_ScalarExpr+_sem_ScalarExpr_AntiScalarExpr string_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast+       _lhsIodbcFunction ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _lhsOupType :: (Maybe TypeExtra)+              _lhsOannotatedTree :: ScalarExpr+              _lhsOoriginalTree :: ScalarExpr+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 232, column 21)+              _lhsOcolExprs =+                  ({-# LINE 232 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   [(Nmc "?anti?",Nothing,_originalTree)]+                   {-# LINE 16002 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 102, column 9)+              _lhsOupType =+                  ({-# LINE 102 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 16008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 735, column 9)+              _tpe =+                  ({-# LINE 735 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Left []+                   {-# LINE 16014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AntiScalarExpr string_+                   {-# LINE 16020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AntiScalarExpr string_+                   {-# LINE 16026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16032 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16038 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupType)))+-- ScalarExprDirectionPair -------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprDirectionPair +         originalTree         : ScalarExprDirectionPair +   alternatives:+      alternative Tuple:+         child x1             : ScalarExpr +         child x2             : {Direction}+         child x3             : {NullsOrder}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprDirectionPair = ( ScalarExpr,(Direction),(NullsOrder))+-- cata+_sem_ScalarExprDirectionPair :: ScalarExprDirectionPair ->+                               T_ScalarExprDirectionPair+_sem_ScalarExprDirectionPair ( x1,x2,x3) =+    (_sem_ScalarExprDirectionPair_Tuple (_sem_ScalarExpr x1) x2 x3)+-- semantic domain+type T_ScalarExprDirectionPair = Catalog ->+                                 Environment ->+                                 TypeCheckFlags ->+                                 (Maybe TypeExtra) ->+                                 ( ScalarExprDirectionPair,ScalarExprDirectionPair)+data Inh_ScalarExprDirectionPair = Inh_ScalarExprDirectionPair {_cat_Inh_ScalarExprDirectionPair :: Catalog,_downEnv_Inh_ScalarExprDirectionPair :: Environment,_flags_Inh_ScalarExprDirectionPair :: TypeCheckFlags,_imCast_Inh_ScalarExprDirectionPair :: (Maybe TypeExtra)}+data Syn_ScalarExprDirectionPair = Syn_ScalarExprDirectionPair {_annotatedTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair,_originalTree_Syn_ScalarExprDirectionPair :: ScalarExprDirectionPair}+_wrap_ScalarExprDirectionPair :: T_ScalarExprDirectionPair ->+                                Inh_ScalarExprDirectionPair ->+                                Syn_ScalarExprDirectionPair+_wrap_ScalarExprDirectionPair sem (Inh_ScalarExprDirectionPair _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprDirectionPair _lhsOannotatedTree _lhsOoriginalTree))+_sem_ScalarExprDirectionPair_Tuple :: T_ScalarExpr ->+                                     Direction ->+                                     NullsOrder ->+                                     T_ScalarExprDirectionPair+_sem_ScalarExprDirectionPair_Tuple x1_ x2_ x3_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _x1OexpectedCast :: Bool+              _x1OodbcFunction :: Bool+              _x1OexpectedType :: (Maybe TypeExtra)+              _x1OassignmentCastContext :: Bool+              _lhsOannotatedTree :: ScalarExprDirectionPair+              _lhsOoriginalTree :: ScalarExprDirectionPair+              _x1Ocat :: Catalog+              _x1OdownEnv :: Environment+              _x1Oflags :: TypeCheckFlags+              _x1OimCast :: (Maybe TypeExtra)+              _x1IannotatedTree :: ScalarExpr+              _x1IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _x1IoriginalTree :: ScalarExpr+              _x1IupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 93, column 37)+              _x1OexpectedCast =+                  ({-# LINE 93 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 16108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 153, column 13)+              _x1OodbcFunction =+                  ({-# LINE 153 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 16114 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 758, column 11)+              _x1OexpectedType =+                  ({-# LINE 758 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 16120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 818, column 37)+              _x1OassignmentCastContext =+                  ({-# LINE 818 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 16126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IannotatedTree,x2_,x3_)+                   {-# LINE 16132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IoriginalTree,x2_,x3_)+                   {-# LINE 16138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1OdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 16162 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16168 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _x1IannotatedTree,_x1IcolExprs,_x1IoriginalTree,_x1IupType) =+                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedType _x1Oflags _x1OimCast _x1OodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExprDirectionPairList ---------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprDirectionPairList +         originalTree         : ScalarExprDirectionPairList +   alternatives:+      alternative Cons:+         child hd             : ScalarExprDirectionPair +         child tl             : ScalarExprDirectionPairList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprDirectionPairList = [ScalarExprDirectionPair]+-- cata+_sem_ScalarExprDirectionPairList :: ScalarExprDirectionPairList ->+                                   T_ScalarExprDirectionPairList+_sem_ScalarExprDirectionPairList list =+    (Prelude.foldr _sem_ScalarExprDirectionPairList_Cons _sem_ScalarExprDirectionPairList_Nil (Prelude.map _sem_ScalarExprDirectionPair list))+-- semantic domain+type T_ScalarExprDirectionPairList = Catalog ->+                                     Environment ->+                                     TypeCheckFlags ->+                                     (Maybe TypeExtra) ->+                                     ( ScalarExprDirectionPairList,ScalarExprDirectionPairList)+data Inh_ScalarExprDirectionPairList = Inh_ScalarExprDirectionPairList {_cat_Inh_ScalarExprDirectionPairList :: Catalog,_downEnv_Inh_ScalarExprDirectionPairList :: Environment,_flags_Inh_ScalarExprDirectionPairList :: TypeCheckFlags,_imCast_Inh_ScalarExprDirectionPairList :: (Maybe TypeExtra)}+data Syn_ScalarExprDirectionPairList = Syn_ScalarExprDirectionPairList {_annotatedTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList,_originalTree_Syn_ScalarExprDirectionPairList :: ScalarExprDirectionPairList}+_wrap_ScalarExprDirectionPairList :: T_ScalarExprDirectionPairList ->+                                    Inh_ScalarExprDirectionPairList ->+                                    Syn_ScalarExprDirectionPairList+_wrap_ScalarExprDirectionPairList sem (Inh_ScalarExprDirectionPairList _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprDirectionPairList _lhsOannotatedTree _lhsOoriginalTree))+_sem_ScalarExprDirectionPairList_Cons :: T_ScalarExprDirectionPair ->+                                        T_ScalarExprDirectionPairList ->+                                        T_ScalarExprDirectionPairList+_sem_ScalarExprDirectionPairList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ScalarExprDirectionPairList+              _lhsOoriginalTree :: ScalarExprDirectionPairList+              _hdOcat :: Catalog+              _hdOdownEnv :: Environment+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOdownEnv :: Environment+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: ScalarExprDirectionPair+              _hdIoriginalTree :: ScalarExprDirectionPair+              _tlIannotatedTree :: ScalarExprDirectionPairList+              _tlIoriginalTree :: ScalarExprDirectionPairList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 16248 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 16254 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16260 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16266 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16272 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOdownEnv =+                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 16278 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16284 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16290 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16296 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOdownEnv =+                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 16302 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16308 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16314 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOdownEnv _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOdownEnv _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_ScalarExprDirectionPairList_Nil :: T_ScalarExprDirectionPairList+_sem_ScalarExprDirectionPairList_Nil =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ScalarExprDirectionPairList+              _lhsOoriginalTree :: ScalarExprDirectionPairList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 16333 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 16339 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16345 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16351 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExprList ----------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedTypes        : [TypeExtra]+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprList +         originalTree         : ScalarExprList +         upTypes              : [Maybe TypeExtra]+   alternatives:+      alternative Cons:+         child hd             : ScalarExpr +         child tl             : ScalarExprList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprList = [ScalarExpr]+-- cata+_sem_ScalarExprList :: ScalarExprList ->+                      T_ScalarExprList+_sem_ScalarExprList list =+    (Prelude.foldr _sem_ScalarExprList_Cons _sem_ScalarExprList_Nil (Prelude.map _sem_ScalarExpr list))+-- semantic domain+type T_ScalarExprList = Bool ->+                        Catalog ->+                        Environment ->+                        Bool ->+                        ([TypeExtra]) ->+                        TypeCheckFlags ->+                        (Maybe TypeExtra) ->+                        ( ScalarExprList,ScalarExprList,([Maybe TypeExtra]))+data Inh_ScalarExprList = Inh_ScalarExprList {_assignmentCastContext_Inh_ScalarExprList :: Bool,_cat_Inh_ScalarExprList :: Catalog,_downEnv_Inh_ScalarExprList :: Environment,_expectedCast_Inh_ScalarExprList :: Bool,_expectedTypes_Inh_ScalarExprList :: ([TypeExtra]),_flags_Inh_ScalarExprList :: TypeCheckFlags,_imCast_Inh_ScalarExprList :: (Maybe TypeExtra)}+data Syn_ScalarExprList = Syn_ScalarExprList {_annotatedTree_Syn_ScalarExprList :: ScalarExprList,_originalTree_Syn_ScalarExprList :: ScalarExprList,_upTypes_Syn_ScalarExprList :: ([Maybe TypeExtra])}+_wrap_ScalarExprList :: T_ScalarExprList ->+                       Inh_ScalarExprList ->+                       Syn_ScalarExprList+_wrap_ScalarExprList sem (Inh_ScalarExprList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedTypes _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupTypes) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedTypes _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprList _lhsOannotatedTree _lhsOoriginalTree _lhsOupTypes))+_sem_ScalarExprList_Cons :: T_ScalarExpr ->+                           T_ScalarExprList ->+                           T_ScalarExprList+_sem_ScalarExprList_Cons hd_ tl_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedTypes+       _lhsIflags+       _lhsIimCast ->+         (let _hdOodbcFunction :: Bool+              _lhsOupTypes :: ([Maybe TypeExtra])+              _hdOexpectedType :: (Maybe TypeExtra)+              _tlOexpectedTypes :: ([TypeExtra])+              _hdOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExprList+              _lhsOoriginalTree :: ScalarExprList+              _hdOassignmentCastContext :: Bool+              _hdOcat :: Catalog+              _hdOdownEnv :: Environment+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOassignmentCastContext :: Bool+              _tlOcat :: Catalog+              _tlOdownEnv :: Environment+              _tlOexpectedCast :: Bool+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: ScalarExpr+              _hdIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _hdIoriginalTree :: ScalarExpr+              _hdIupType :: (Maybe TypeExtra)+              _tlIannotatedTree :: ScalarExprList+              _tlIoriginalTree :: ScalarExprList+              _tlIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 156, column 12)+              _hdOodbcFunction =+                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 16444 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 197, column 9)+              _lhsOupTypes =+                  ({-# LINE 197 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _hdIupType : _tlIupTypes+                   {-# LINE 16450 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 198, column 9)+              (_hdOexpectedType,_tlOexpectedTypes) =+                  ({-# LINE 198 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   case _lhsIexpectedTypes of+                       (x:xs) -> (Just x,xs)+                       [] -> (Nothing,[])+                   {-# LINE 16458 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 202, column 9)+              _hdOexpectedCast =+                  ({-# LINE 202 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 16464 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 16470 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 16476 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16482 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16488 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 16494 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16500 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 16506 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 16524 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16530 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 16536 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOexpectedCast =+                  ({-# LINE 193 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 16542 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16548 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16554 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIcolExprs,_hdIoriginalTree,_hdIupType) =+                  hd_ _hdOassignmentCastContext _hdOcat _hdOdownEnv _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast _hdOodbcFunction+              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupTypes) =+                  tl_ _tlOassignmentCastContext _tlOcat _tlOdownEnv _tlOexpectedCast _tlOexpectedTypes _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupTypes)))+_sem_ScalarExprList_Nil :: T_ScalarExprList+_sem_ScalarExprList_Nil =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedTypes+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOupTypes :: ([Maybe TypeExtra])+              _lhsOannotatedTree :: ScalarExprList+              _lhsOoriginalTree :: ScalarExprList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 203, column 11)+              _lhsOupTypes =+                  ({-# LINE 203 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   []+                   {-# LINE 16577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 16583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 16589 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupTypes)))+-- ScalarExprListList ------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedType         : Maybe [TypeExtra]+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprListList +         originalTree         : ScalarExprListList +         upType               : Either [TypeError] [(Text,TypeExtra)]+   alternatives:+      alternative Cons:+         child hd             : ScalarExprTransposedList +         child tl             : ScalarExprListList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprListList = [ScalarExprTransposedList]+-- cata+_sem_ScalarExprListList :: ScalarExprListList ->+                          T_ScalarExprListList+_sem_ScalarExprListList list =+    (Prelude.foldr _sem_ScalarExprListList_Cons _sem_ScalarExprListList_Nil (Prelude.map _sem_ScalarExprTransposedList list))+-- semantic domain+type T_ScalarExprListList = Bool ->+                            Catalog ->+                            Environment ->+                            Bool ->+                            (Maybe [TypeExtra]) ->+                            TypeCheckFlags ->+                            (Maybe TypeExtra) ->+                            ( ScalarExprListList,ScalarExprListList,(Either [TypeError] [(Text,TypeExtra)]))+data Inh_ScalarExprListList = Inh_ScalarExprListList {_assignmentCastContext_Inh_ScalarExprListList :: Bool,_cat_Inh_ScalarExprListList :: Catalog,_downEnv_Inh_ScalarExprListList :: Environment,_expectedCast_Inh_ScalarExprListList :: Bool,_expectedType_Inh_ScalarExprListList :: (Maybe [TypeExtra]),_flags_Inh_ScalarExprListList :: TypeCheckFlags,_imCast_Inh_ScalarExprListList :: (Maybe TypeExtra)}+data Syn_ScalarExprListList = Syn_ScalarExprListList {_annotatedTree_Syn_ScalarExprListList :: ScalarExprListList,_originalTree_Syn_ScalarExprListList :: ScalarExprListList,_upType_Syn_ScalarExprListList :: (Either [TypeError] [(Text,TypeExtra)])}+_wrap_ScalarExprListList :: T_ScalarExprListList ->+                           Inh_ScalarExprListList ->+                           Syn_ScalarExprListList+_wrap_ScalarExprListList sem (Inh_ScalarExprListList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprListList _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))+_sem_ScalarExprListList_Cons :: T_ScalarExprTransposedList ->+                               T_ScalarExprListList ->+                               T_ScalarExprListList+_sem_ScalarExprListList_Cons hd_ tl_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOupType :: (Either [TypeError] [(Text,TypeExtra)])+              _hdOexpectedCast :: Bool+              _tlOexpectedCast :: Bool+              _lhsOannotatedTree :: ScalarExprListList+              _lhsOoriginalTree :: ScalarExprListList+              _hdOcat :: Catalog+              _hdOexpectedType :: (Maybe [TypeExtra])+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOassignmentCastContext :: Bool+              _tlOcat :: Catalog+              _tlOdownEnv :: Environment+              _tlOexpectedType :: (Maybe [TypeExtra])+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: ScalarExprTransposedList+              _hdIoriginalTree :: ScalarExprTransposedList+              _hdIupType :: (Maybe [TypeExtra])+              _tlIannotatedTree :: ScalarExprListList+              _tlIoriginalTree :: ScalarExprListList+              _tlIupType :: (Either [TypeError] [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 191, column 9)+              _lhsOupType =+                  ({-# LINE 191 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   do+                   a <- maybe (Left [InternalError "type error in VALUES clause"]) Right _hdIupType+                   b <- _tlIupType+                   unless (not $ null a) $ Left [InternalError "empty row in VALUES clause"]+                   let a' = map ("",) a+                       itError = Left [IncompatibleUnionTypes (CompositeType a') (CompositeType b)]+                   unless (null b || length a == length b) itError+                   if null b+                     then return $ zip [T.pack ("values%" ++ show k) | k <- [(0::Int)..]] a+                     else+                       do+                       let uts = zipWithM (\te1 (_,te2) -> resolveResultSetTypeExtra _lhsIcat [te1,te2])+                                     a b+                       case uts of+                         Left{} -> itError+                         Right uts' -> return $ zipWith (\(n,_) te -> (n,te)) b uts'+                   {-# LINE 16705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 209, column 9)+              _hdOexpectedCast =+                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 16711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 210, column 9)+              _tlOexpectedCast =+                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 16717 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 16723 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 16729 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16735 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOexpectedType =+                  ({-# LINE 169 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 16753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16765 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 16771 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOdownEnv =+                  ({-# LINE 183 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 16783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOexpectedType =+                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 16789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree,_hdIupType) =+                  hd_ _hdOcat _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupType) =+                  tl_ _tlOassignmentCastContext _tlOcat _tlOdownEnv _tlOexpectedCast _tlOexpectedType _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExprListList_Nil :: T_ScalarExprListList+_sem_ScalarExprListList_Nil =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOupType :: (Either [TypeError] [(Text,TypeExtra)])+              _lhsOannotatedTree :: ScalarExprListList+              _lhsOoriginalTree :: ScalarExprListList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 211, column 11)+              _lhsOupType =+                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Right []+                   {-# LINE 16824 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 16830 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 16836 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16842 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16848 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+-- ScalarExprListStatementListTriple ---------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprListStatementListTriple +         originalTree         : ScalarExprListStatementListTriple +   alternatives:+      alternative Tuple:+         child x1             : ScalarExprList +         child x2             : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprListStatementListTriple = ( ScalarExprList,StatementList)+-- cata+_sem_ScalarExprListStatementListTriple :: ScalarExprListStatementListTriple ->+                                         T_ScalarExprListStatementListTriple+_sem_ScalarExprListStatementListTriple ( x1,x2) =+    (_sem_ScalarExprListStatementListTriple_Tuple (_sem_ScalarExprList x1) (_sem_StatementList x2))+-- semantic domain+type T_ScalarExprListStatementListTriple = Catalog ->+                                           TypeCheckFlags ->+                                           (Maybe TypeExtra) ->+                                           ( ScalarExprListStatementListTriple,ScalarExprListStatementListTriple)+data Inh_ScalarExprListStatementListTriple = Inh_ScalarExprListStatementListTriple {_cat_Inh_ScalarExprListStatementListTriple :: Catalog,_flags_Inh_ScalarExprListStatementListTriple :: TypeCheckFlags,_imCast_Inh_ScalarExprListStatementListTriple :: (Maybe TypeExtra)}+data Syn_ScalarExprListStatementListTriple = Syn_ScalarExprListStatementListTriple {_annotatedTree_Syn_ScalarExprListStatementListTriple :: ScalarExprListStatementListTriple,_originalTree_Syn_ScalarExprListStatementListTriple :: ScalarExprListStatementListTriple}+_wrap_ScalarExprListStatementListTriple :: T_ScalarExprListStatementListTriple ->+                                          Inh_ScalarExprListStatementListTriple ->+                                          Syn_ScalarExprListStatementListTriple+_wrap_ScalarExprListStatementListTriple sem (Inh_ScalarExprListStatementListTriple _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprListStatementListTriple _lhsOannotatedTree _lhsOoriginalTree))+_sem_ScalarExprListStatementListTriple_Tuple :: T_ScalarExprList ->+                                               T_StatementList ->+                                               T_ScalarExprListStatementListTriple+_sem_ScalarExprListStatementListTriple_Tuple x1_ x2_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _x1OdownEnv :: Environment+              _x1OexpectedCast :: Bool+              _x1OexpectedTypes :: ([TypeExtra])+              _x1OassignmentCastContext :: Bool+              _lhsOannotatedTree :: ScalarExprListStatementListTriple+              _lhsOoriginalTree :: ScalarExprListStatementListTriple+              _x1Ocat :: Catalog+              _x1Oflags :: TypeCheckFlags+              _x1OimCast :: (Maybe TypeExtra)+              _x2Ocat :: Catalog+              _x2Oflags :: TypeCheckFlags+              _x2OimCast :: (Maybe TypeExtra)+              _x1IannotatedTree :: ScalarExprList+              _x1IoriginalTree :: ScalarExprList+              _x1IupTypes :: ([Maybe TypeExtra])+              _x2IannotatedTree :: StatementList+              _x2IoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 94, column 47)+              _x1OdownEnv =+                  ({-# LINE 94 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 16916 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 95, column 47)+              _x1OexpectedCast =+                  ({-# LINE 95 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 16922 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 96, column 47)+              _x1OexpectedTypes =+                  ({-# LINE 96 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   []+                   {-# LINE 16928 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 819, column 47)+              _x1OassignmentCastContext =+                  ({-# LINE 819 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 16934 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IannotatedTree,_x2IannotatedTree)+                   {-# LINE 16940 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IoriginalTree,_x2IoriginalTree)+                   {-# LINE 16946 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 16952 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 16958 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16964 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16970 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16976 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 16982 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 16988 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 16994 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _x1IannotatedTree,_x1IoriginalTree,_x1IupTypes) =+                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedTypes _x1Oflags _x1OimCast+              ( _x2IannotatedTree,_x2IoriginalTree) =+                  x2_ _x2Ocat _x2Oflags _x2OimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExprListStatementListTripleList -----------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprListStatementListTripleList +         originalTree         : ScalarExprListStatementListTripleList +   alternatives:+      alternative Cons:+         child hd             : ScalarExprListStatementListTriple +         child tl             : ScalarExprListStatementListTripleList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprListStatementListTripleList = [ScalarExprListStatementListTriple]+-- cata+_sem_ScalarExprListStatementListTripleList :: ScalarExprListStatementListTripleList ->+                                             T_ScalarExprListStatementListTripleList+_sem_ScalarExprListStatementListTripleList list =+    (Prelude.foldr _sem_ScalarExprListStatementListTripleList_Cons _sem_ScalarExprListStatementListTripleList_Nil (Prelude.map _sem_ScalarExprListStatementListTriple list))+-- semantic domain+type T_ScalarExprListStatementListTripleList = Catalog ->+                                               TypeCheckFlags ->+                                               (Maybe TypeExtra) ->+                                               ( ScalarExprListStatementListTripleList,ScalarExprListStatementListTripleList)+data Inh_ScalarExprListStatementListTripleList = Inh_ScalarExprListStatementListTripleList {_cat_Inh_ScalarExprListStatementListTripleList :: Catalog,_flags_Inh_ScalarExprListStatementListTripleList :: TypeCheckFlags,_imCast_Inh_ScalarExprListStatementListTripleList :: (Maybe TypeExtra)}+data Syn_ScalarExprListStatementListTripleList = Syn_ScalarExprListStatementListTripleList {_annotatedTree_Syn_ScalarExprListStatementListTripleList :: ScalarExprListStatementListTripleList,_originalTree_Syn_ScalarExprListStatementListTripleList :: ScalarExprListStatementListTripleList}+_wrap_ScalarExprListStatementListTripleList :: T_ScalarExprListStatementListTripleList ->+                                              Inh_ScalarExprListStatementListTripleList ->+                                              Syn_ScalarExprListStatementListTripleList+_wrap_ScalarExprListStatementListTripleList sem (Inh_ScalarExprListStatementListTripleList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprListStatementListTripleList _lhsOannotatedTree _lhsOoriginalTree))+_sem_ScalarExprListStatementListTripleList_Cons :: T_ScalarExprListStatementListTriple ->+                                                  T_ScalarExprListStatementListTripleList ->+                                                  T_ScalarExprListStatementListTripleList+_sem_ScalarExprListStatementListTripleList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ScalarExprListStatementListTripleList+              _lhsOoriginalTree :: ScalarExprListStatementListTripleList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: ScalarExprListStatementListTriple+              _hdIoriginalTree :: ScalarExprListStatementListTriple+              _tlIannotatedTree :: ScalarExprListStatementListTripleList+              _tlIoriginalTree :: ScalarExprListStatementListTripleList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 17065 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 17071 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17077 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17083 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17089 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17095 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17101 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17107 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17113 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_ScalarExprListStatementListTripleList_Nil :: T_ScalarExprListStatementListTripleList+_sem_ScalarExprListStatementListTripleList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ScalarExprListStatementListTripleList+              _lhsOoriginalTree :: ScalarExprListStatementListTripleList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 17137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 17143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExprRoot ----------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         downEnv              : Environment+         flags                : TypeCheckFlags+      synthesized attributes:+         annotatedTree        : ScalarExprRoot +         originalTree         : ScalarExprRoot +   alternatives:+      alternative ScalarExprRoot:+         child expr           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data ScalarExprRoot = ScalarExprRoot (ScalarExpr)+                    deriving ( Show)+-- cata+_sem_ScalarExprRoot :: ScalarExprRoot ->+                      T_ScalarExprRoot+_sem_ScalarExprRoot (ScalarExprRoot _expr) =+    (_sem_ScalarExprRoot_ScalarExprRoot (_sem_ScalarExpr _expr))+-- semantic domain+type T_ScalarExprRoot = Catalog ->+                        Environment ->+                        TypeCheckFlags ->+                        ( ScalarExprRoot,ScalarExprRoot)+data Inh_ScalarExprRoot = Inh_ScalarExprRoot {_cat_Inh_ScalarExprRoot :: Catalog,_downEnv_Inh_ScalarExprRoot :: Environment,_flags_Inh_ScalarExprRoot :: TypeCheckFlags}+data Syn_ScalarExprRoot = Syn_ScalarExprRoot {_annotatedTree_Syn_ScalarExprRoot :: ScalarExprRoot,_originalTree_Syn_ScalarExprRoot :: ScalarExprRoot}+_wrap_ScalarExprRoot :: T_ScalarExprRoot ->+                       Inh_ScalarExprRoot ->+                       Syn_ScalarExprRoot+_wrap_ScalarExprRoot sem (Inh_ScalarExprRoot _lhsIcat _lhsIdownEnv _lhsIflags) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIdownEnv _lhsIflags+     in  (Syn_ScalarExprRoot _lhsOannotatedTree _lhsOoriginalTree))+_sem_ScalarExprRoot_ScalarExprRoot :: T_ScalarExpr ->+                                     T_ScalarExprRoot+_sem_ScalarExprRoot_ScalarExprRoot expr_ =+    (\ _lhsIcat+       _lhsIdownEnv+       _lhsIflags ->+         (let _exprOexpectedCast :: Bool+              _exprOodbcFunction :: Bool+              _exprOdownEnv :: Environment+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOassignmentCastContext :: Bool+              _exprOimCast :: (Maybe TypeExtra)+              _lhsOannotatedTree :: ScalarExprRoot+              _lhsOoriginalTree :: ScalarExprRoot+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 97, column 37)+              _exprOexpectedCast =+                  ({-# LINE 97 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 17219 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 159, column 22)+              _exprOodbcFunction =+                  ({-# LINE 159 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 17225 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 237, column 9)+              _exprOdownEnv =+                  ({-# LINE 237 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 17231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 741, column 20)+              _exprOexpectedType =+                  ({-# LINE 741 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   Nothing+                   {-# LINE 17237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 820, column 37)+              _exprOassignmentCastContext =+                  ({-# LINE 820 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 17243 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag"(line 136, column 8)+              _exprOimCast =+                  ({-# LINE 136 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Nothing+                   {-# LINE 17249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ScalarExprRoot _exprIannotatedTree+                   {-# LINE 17255 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ScalarExprRoot _exprIoriginalTree+                   {-# LINE 17261 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17273 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17279 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17285 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExprStatementListPair ---------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprStatementListPair +         originalTree         : ScalarExprStatementListPair +   alternatives:+      alternative Tuple:+         child x1             : ScalarExpr +         child x2             : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprStatementListPair = ( ScalarExpr,StatementList)+-- cata+_sem_ScalarExprStatementListPair :: ScalarExprStatementListPair ->+                                   T_ScalarExprStatementListPair+_sem_ScalarExprStatementListPair ( x1,x2) =+    (_sem_ScalarExprStatementListPair_Tuple (_sem_ScalarExpr x1) (_sem_StatementList x2))+-- semantic domain+type T_ScalarExprStatementListPair = Catalog ->+                                     TypeCheckFlags ->+                                     (Maybe TypeExtra) ->+                                     ( ScalarExprStatementListPair,ScalarExprStatementListPair)+data Inh_ScalarExprStatementListPair = Inh_ScalarExprStatementListPair {_cat_Inh_ScalarExprStatementListPair :: Catalog,_flags_Inh_ScalarExprStatementListPair :: TypeCheckFlags,_imCast_Inh_ScalarExprStatementListPair :: (Maybe TypeExtra)}+data Syn_ScalarExprStatementListPair = Syn_ScalarExprStatementListPair {_annotatedTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair,_originalTree_Syn_ScalarExprStatementListPair :: ScalarExprStatementListPair}+_wrap_ScalarExprStatementListPair :: T_ScalarExprStatementListPair ->+                                    Inh_ScalarExprStatementListPair ->+                                    Syn_ScalarExprStatementListPair+_wrap_ScalarExprStatementListPair sem (Inh_ScalarExprStatementListPair _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprStatementListPair _lhsOannotatedTree _lhsOoriginalTree))+_sem_ScalarExprStatementListPair_Tuple :: T_ScalarExpr ->+                                         T_StatementList ->+                                         T_ScalarExprStatementListPair+_sem_ScalarExprStatementListPair_Tuple x1_ x2_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _x1OdownEnv :: Environment+              _x1OexpectedCast :: Bool+              _x1OexpectedType :: (Maybe TypeExtra)+              _x1OodbcFunction :: Bool+              _x1OassignmentCastContext :: Bool+              _lhsOannotatedTree :: ScalarExprStatementListPair+              _lhsOoriginalTree :: ScalarExprStatementListPair+              _x1Ocat :: Catalog+              _x1Oflags :: TypeCheckFlags+              _x1OimCast :: (Maybe TypeExtra)+              _x2Ocat :: Catalog+              _x2Oflags :: TypeCheckFlags+              _x2OimCast :: (Maybe TypeExtra)+              _x1IannotatedTree :: ScalarExpr+              _x1IcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _x1IoriginalTree :: ScalarExpr+              _x1IupType :: (Maybe TypeExtra)+              _x2IannotatedTree :: StatementList+              _x2IoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 98, column 41)+              _x1OdownEnv =+                  ({-# LINE 98 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 17357 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 99, column 41)+              _x1OexpectedCast =+                  ({-# LINE 99 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 17363 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 100, column 41)+              _x1OexpectedType =+                  ({-# LINE 100 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 17369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 101, column 41)+              _x1OodbcFunction =+                  ({-# LINE 101 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 17375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 821, column 41)+              _x1OassignmentCastContext =+                  ({-# LINE 821 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 17381 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IannotatedTree,_x2IannotatedTree)+                   {-# LINE 17387 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (_x1IoriginalTree,_x2IoriginalTree)+                   {-# LINE 17393 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _x2OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _x1IannotatedTree,_x1IcolExprs,_x1IoriginalTree,_x1IupType) =+                  x1_ _x1OassignmentCastContext _x1Ocat _x1OdownEnv _x1OexpectedCast _x1OexpectedType _x1Oflags _x1OimCast _x1OodbcFunction+              ( _x2IannotatedTree,_x2IoriginalTree) =+                  x2_ _x2Ocat _x2Oflags _x2OimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExprStatementListPairList -----------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprStatementListPairList +         originalTree         : ScalarExprStatementListPairList +   alternatives:+      alternative Cons:+         child hd             : ScalarExprStatementListPair +         child tl             : ScalarExprStatementListPairList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprStatementListPairList = [ScalarExprStatementListPair]+-- cata+_sem_ScalarExprStatementListPairList :: ScalarExprStatementListPairList ->+                                       T_ScalarExprStatementListPairList+_sem_ScalarExprStatementListPairList list =+    (Prelude.foldr _sem_ScalarExprStatementListPairList_Cons _sem_ScalarExprStatementListPairList_Nil (Prelude.map _sem_ScalarExprStatementListPair list))+-- semantic domain+type T_ScalarExprStatementListPairList = Catalog ->+                                         TypeCheckFlags ->+                                         (Maybe TypeExtra) ->+                                         ( ScalarExprStatementListPairList,ScalarExprStatementListPairList)+data Inh_ScalarExprStatementListPairList = Inh_ScalarExprStatementListPairList {_cat_Inh_ScalarExprStatementListPairList :: Catalog,_flags_Inh_ScalarExprStatementListPairList :: TypeCheckFlags,_imCast_Inh_ScalarExprStatementListPairList :: (Maybe TypeExtra)}+data Syn_ScalarExprStatementListPairList = Syn_ScalarExprStatementListPairList {_annotatedTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList,_originalTree_Syn_ScalarExprStatementListPairList :: ScalarExprStatementListPairList}+_wrap_ScalarExprStatementListPairList :: T_ScalarExprStatementListPairList ->+                                        Inh_ScalarExprStatementListPairList ->+                                        Syn_ScalarExprStatementListPairList+_wrap_ScalarExprStatementListPairList sem (Inh_ScalarExprStatementListPairList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprStatementListPairList _lhsOannotatedTree _lhsOoriginalTree))+_sem_ScalarExprStatementListPairList_Cons :: T_ScalarExprStatementListPair ->+                                            T_ScalarExprStatementListPairList ->+                                            T_ScalarExprStatementListPairList+_sem_ScalarExprStatementListPairList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ScalarExprStatementListPairList+              _lhsOoriginalTree :: ScalarExprStatementListPairList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: ScalarExprStatementListPair+              _hdIoriginalTree :: ScalarExprStatementListPair+              _tlIannotatedTree :: ScalarExprStatementListPairList+              _tlIoriginalTree :: ScalarExprStatementListPairList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 17512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 17518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17524 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17530 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17536 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17542 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17548 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17554 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17560 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17566 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_ScalarExprStatementListPairList_Nil :: T_ScalarExprStatementListPairList+_sem_ScalarExprStatementListPairList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: ScalarExprStatementListPairList+              _lhsOoriginalTree :: ScalarExprStatementListPairList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 17584 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 17590 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17596 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17602 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- ScalarExprTransposedList ------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         expectedCast         : Bool+         expectedType         : Maybe [TypeExtra]+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : ScalarExprTransposedList +         originalTree         : ScalarExprTransposedList +         upType               : Maybe [TypeExtra]+   alternatives:+      alternative Cons:+         child hd             : ScalarExpr +         child tl             : ScalarExprTransposedList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type ScalarExprTransposedList = [ScalarExpr]+-- cata+_sem_ScalarExprTransposedList :: ScalarExprTransposedList ->+                                T_ScalarExprTransposedList+_sem_ScalarExprTransposedList list =+    (Prelude.foldr _sem_ScalarExprTransposedList_Cons _sem_ScalarExprTransposedList_Nil (Prelude.map _sem_ScalarExpr list))+-- semantic domain+type T_ScalarExprTransposedList = Catalog ->+                                  Bool ->+                                  (Maybe [TypeExtra]) ->+                                  TypeCheckFlags ->+                                  (Maybe TypeExtra) ->+                                  ( ScalarExprTransposedList,ScalarExprTransposedList,(Maybe [TypeExtra]))+data Inh_ScalarExprTransposedList = Inh_ScalarExprTransposedList {_cat_Inh_ScalarExprTransposedList :: Catalog,_expectedCast_Inh_ScalarExprTransposedList :: Bool,_expectedType_Inh_ScalarExprTransposedList :: (Maybe [TypeExtra]),_flags_Inh_ScalarExprTransposedList :: TypeCheckFlags,_imCast_Inh_ScalarExprTransposedList :: (Maybe TypeExtra)}+data Syn_ScalarExprTransposedList = Syn_ScalarExprTransposedList {_annotatedTree_Syn_ScalarExprTransposedList :: ScalarExprTransposedList,_originalTree_Syn_ScalarExprTransposedList :: ScalarExprTransposedList,_upType_Syn_ScalarExprTransposedList :: (Maybe [TypeExtra])}+_wrap_ScalarExprTransposedList :: T_ScalarExprTransposedList ->+                                 Inh_ScalarExprTransposedList ->+                                 Syn_ScalarExprTransposedList+_wrap_ScalarExprTransposedList sem (Inh_ScalarExprTransposedList _lhsIcat _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType) = sem _lhsIcat _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast+     in  (Syn_ScalarExprTransposedList _lhsOannotatedTree _lhsOoriginalTree _lhsOupType))+_sem_ScalarExprTransposedList_Cons :: T_ScalarExpr ->+                                     T_ScalarExprTransposedList ->+                                     T_ScalarExprTransposedList+_sem_ScalarExprTransposedList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _hdOdownEnv :: Environment+              _lhsOupType :: (Maybe [TypeExtra])+              _hdOexpectedType :: (Maybe TypeExtra)+              _tlOexpectedType :: (Maybe [TypeExtra])+              _hdOexpectedCast :: Bool+              _tlOexpectedCast :: Bool+              _hdOodbcFunction :: Bool+              _hdOassignmentCastContext :: Bool+              _lhsOannotatedTree :: ScalarExprTransposedList+              _lhsOoriginalTree :: ScalarExprTransposedList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: ScalarExpr+              _hdIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _hdIoriginalTree :: ScalarExpr+              _hdIupType :: (Maybe TypeExtra)+              _tlIannotatedTree :: ScalarExprTransposedList+              _tlIoriginalTree :: ScalarExprTransposedList+              _tlIupType :: (Maybe [TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 102, column 37)+              _hdOdownEnv =+                  ({-# LINE 102 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 17687 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 174, column 9)+              _lhsOupType =+                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM2 (:) _hdIupType _tlIupType+                   {-# LINE 17693 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 175, column 9)+              _hdOexpectedType =+                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM fst $ splitTypeExtraList _lhsIexpectedType+                   {-# LINE 17699 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 176, column 9)+              _tlOexpectedType =+                  ({-# LINE 176 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM snd $ splitTypeExtraList _lhsIexpectedType+                   {-# LINE 17705 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 177, column 9)+              _hdOexpectedCast =+                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 17711 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 178, column 9)+              _tlOexpectedCast =+                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 17717 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 163, column 12)+              _hdOodbcFunction =+                  ({-# LINE 163 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 17723 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 822, column 37)+              _hdOassignmentCastContext =+                  ({-# LINE 822 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 17729 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 17735 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 17741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17765 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17771 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 17789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIcolExprs,_hdIoriginalTree,_hdIupType) =+                  hd_ _hdOassignmentCastContext _hdOcat _hdOdownEnv _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast _hdOodbcFunction+              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupType) =+                  tl_ _tlOcat _tlOexpectedCast _tlOexpectedType _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+_sem_ScalarExprTransposedList_Nil :: T_ScalarExprTransposedList+_sem_ScalarExprTransposedList_Nil =+    (\ _lhsIcat+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOupType :: (Maybe [TypeExtra])+              _lhsOannotatedTree :: ScalarExprTransposedList+              _lhsOoriginalTree :: ScalarExprTransposedList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 180, column 9)+              _lhsOupType =+                  ({-# LINE 180 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Just []+                   {-# LINE 17810 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 17816 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 17822 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 17828 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17834 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupType)))+-- SelectItem --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedType         : Maybe TypeExtra+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : SelectItem +         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]+         originalTree         : SelectItem +   alternatives:+      alternative SelExp:+         child ann            : Annotation +         child ex             : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative SelectItem:+         child ann            : Annotation +         child ex             : ScalarExpr +         child name           : {NameComponent}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data SelectItem = SelExp (Annotation) (ScalarExpr)+                | SelectItem (Annotation) (ScalarExpr) (NameComponent)+                deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_SelectItem :: SelectItem ->+                  T_SelectItem+_sem_SelectItem (SelExp _ann _ex) =+    (_sem_SelectItem_SelExp (_sem_Annotation _ann) (_sem_ScalarExpr _ex))+_sem_SelectItem (SelectItem _ann _ex _name) =+    (_sem_SelectItem_SelectItem (_sem_Annotation _ann) (_sem_ScalarExpr _ex) _name)+-- semantic domain+type T_SelectItem = Bool ->+                    Catalog ->+                    Environment ->+                    Bool ->+                    (Maybe TypeExtra) ->+                    TypeCheckFlags ->+                    (Maybe TypeExtra) ->+                    ( SelectItem,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),SelectItem)+data Inh_SelectItem = Inh_SelectItem {_assignmentCastContext_Inh_SelectItem :: Bool,_cat_Inh_SelectItem :: Catalog,_downEnv_Inh_SelectItem :: Environment,_expectedCast_Inh_SelectItem :: Bool,_expectedType_Inh_SelectItem :: (Maybe TypeExtra),_flags_Inh_SelectItem :: TypeCheckFlags,_imCast_Inh_SelectItem :: (Maybe TypeExtra)}+data Syn_SelectItem = Syn_SelectItem {_annotatedTree_Syn_SelectItem :: SelectItem,_colExprs_Syn_SelectItem :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_SelectItem :: SelectItem}+_wrap_SelectItem :: T_SelectItem ->+                   Inh_SelectItem ->+                   Syn_SelectItem+_wrap_SelectItem sem (Inh_SelectItem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast+     in  (Syn_SelectItem _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree))+_sem_SelectItem_SelExp :: T_Annotation ->+                         T_ScalarExpr ->+                         T_SelectItem+_sem_SelectItem_SelExp ann_ ex_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: SelectItem+              _annOtpe :: (Either [TypeError] TypeExtra)+              _exOexpectedType :: (Maybe TypeExtra)+              _exOexpectedCast :: Bool+              _exOodbcFunction :: Bool+              _lhsOoriginalTree :: SelectItem+              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exOassignmentCastContext :: Bool+              _exOcat :: Catalog+              _exOdownEnv :: Environment+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: ScalarExpr+              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exIoriginalTree :: ScalarExpr+              _exIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 117, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   if tcfAddSelectItemAliases _lhsIflags+                   then case _exIcolExprs of+                          [(n,_,_)] -> SelectItem _annIannotatedTree _exIannotatedTree n+                          _ ->+                               _annotatedTree+                   else _annotatedTree+                   {-# LINE 17935 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 208, column 7)+              _annOtpe =+                  ({-# LINE 208 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   Left []+                   {-# LINE 17941 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 209, column 7)+              _exOexpectedType =+                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 17947 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 210, column 7)+              _exOexpectedCast =+                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 17953 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 166, column 25)+              _exOodbcFunction =+                  ({-# LINE 166 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 17959 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SelExp _annIannotatedTree _exIannotatedTree+                   {-# LINE 17965 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SelExp _annIoriginalTree _exIoriginalTree+                   {-# LINE 17971 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 17977 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOcolExprs =+                  ({-# LINE 150 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _exIcolExprs+                   {-# LINE 17983 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 17989 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 17995 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18001 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 18007 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18013 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 18019 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18025 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18031 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree)))+_sem_SelectItem_SelectItem :: T_Annotation ->+                             T_ScalarExpr ->+                             NameComponent ->+                             T_SelectItem+_sem_SelectItem_SelectItem ann_ ex_ name_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _annOtpe :: (Either [TypeError] TypeExtra)+              _exOexpectedType :: (Maybe TypeExtra)+              _exOexpectedCast :: Bool+              _exOodbcFunction :: Bool+              _lhsOannotatedTree :: SelectItem+              _lhsOoriginalTree :: SelectItem+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exOassignmentCastContext :: Bool+              _exOcat :: Catalog+              _exOdownEnv :: Environment+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: ScalarExpr+              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exIoriginalTree :: ScalarExpr+              _exIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 112, column 7)+              _lhsOcolExprs =+                  ({-# LINE 112 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   case _exIcolExprs of+                     [(_,t,e)] -> [(name_, t,e)]+                     x -> x+                   {-# LINE 18077 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 208, column 7)+              _annOtpe =+                  ({-# LINE 208 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   Left []+                   {-# LINE 18083 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 209, column 7)+              _exOexpectedType =+                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 18089 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 210, column 7)+              _exOexpectedCast =+                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 18095 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 166, column 25)+              _exOodbcFunction =+                  ({-# LINE 166 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 18101 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SelectItem _annIannotatedTree _exIannotatedTree name_+                   {-# LINE 18107 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SelectItem _annIoriginalTree _exIoriginalTree name_+                   {-# LINE 18113 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 18119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 18125 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18131 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18137 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 18149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 18161 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18167 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree)))+-- SelectItemList ----------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedType         : Maybe [TypeExtra]+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : SelectItemList +         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]+         originalTree         : SelectItemList +         upEnv                : Environment+         upType               : Maybe [(Text,TypeExtra)]+   alternatives:+      alternative Cons:+         child hd             : SelectItem +         child tl             : SelectItemList +         visit 0:+            local colExprs    : _+            local upType      : _+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local upType      : _+            local annotatedTree : _+            local originalTree : _+-}+type SelectItemList = [SelectItem]+-- cata+_sem_SelectItemList :: SelectItemList ->+                      T_SelectItemList+_sem_SelectItemList list =+    (Prelude.foldr _sem_SelectItemList_Cons _sem_SelectItemList_Nil (Prelude.map _sem_SelectItem list))+-- semantic domain+type T_SelectItemList = Bool ->+                        Catalog ->+                        Environment ->+                        Bool ->+                        (Maybe [TypeExtra]) ->+                        TypeCheckFlags ->+                        (Maybe TypeExtra) ->+                        ( SelectItemList,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),SelectItemList,Environment,(Maybe [(Text,TypeExtra)]))+data Inh_SelectItemList = Inh_SelectItemList {_assignmentCastContext_Inh_SelectItemList :: Bool,_cat_Inh_SelectItemList :: Catalog,_downEnv_Inh_SelectItemList :: Environment,_expectedCast_Inh_SelectItemList :: Bool,_expectedType_Inh_SelectItemList :: (Maybe [TypeExtra]),_flags_Inh_SelectItemList :: TypeCheckFlags,_imCast_Inh_SelectItemList :: (Maybe TypeExtra)}+data Syn_SelectItemList = Syn_SelectItemList {_annotatedTree_Syn_SelectItemList :: SelectItemList,_colExprs_Syn_SelectItemList :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_SelectItemList :: SelectItemList,_upEnv_Syn_SelectItemList :: Environment,_upType_Syn_SelectItemList :: (Maybe [(Text,TypeExtra)])}+_wrap_SelectItemList :: T_SelectItemList ->+                       Inh_SelectItemList ->+                       Syn_SelectItemList+_wrap_SelectItemList sem (Inh_SelectItemList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast+     in  (Syn_SelectItemList _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree _lhsOupEnv _lhsOupType))+_sem_SelectItemList_Cons :: T_SelectItem ->+                           T_SelectItemList ->+                           T_SelectItemList+_sem_SelectItemList_Cons hd_ tl_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: SelectItemList+              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _hdOexpectedType :: (Maybe TypeExtra)+              _tlOexpectedType :: (Maybe [TypeExtra])+              _hdOexpectedCast :: Bool+              _tlOexpectedCast :: Bool+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _lhsOupEnv :: Environment+              _lhsOoriginalTree :: SelectItemList+              _hdOassignmentCastContext :: Bool+              _hdOcat :: Catalog+              _hdOdownEnv :: Environment+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOassignmentCastContext :: Bool+              _tlOcat :: Catalog+              _tlOdownEnv :: Environment+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: SelectItem+              _hdIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _hdIoriginalTree :: SelectItem+              _tlIannotatedTree :: SelectItemList+              _tlIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _tlIoriginalTree :: SelectItemList+              _tlIupEnv :: Environment+              _tlIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 132, column 10)+              _lhsOannotatedTree =+                  ({-# LINE 132 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   if tcfExpandStars _lhsIflags+                   then flip map _colExprs $ \(n,_t,e) ->+                         if ncStr n == ncStr (columnName e) && not (tcfAddSelectItemAliases _lhsIflags)+                         then SelExp emptyAnnotation e+                         else SelectItem emptyAnnotation e n+                   else _annotatedTree+                   {-# LINE 18282 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 177, column 9)+              _colExprs =+                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _hdIcolExprs ++ _tlIcolExprs+                   {-# LINE 18288 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 178, column 9)+              _lhsOcolExprs =+                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _colExprs+                   {-# LINE 18294 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 179, column 9)+              _upType =+                  ({-# LINE 179 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   sequence $ flip map _colExprs+                   $ \(n,t,_) -> fmap (ncStrT n,) t+                   {-# LINE 18301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 181, column 9)+              _hdOexpectedType =+                  ({-# LINE 181 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   liftM fst $ splitTypeExtraList _lhsIexpectedType+                   {-# LINE 18307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 182, column 9)+              _tlOexpectedType =+                  ({-# LINE 182 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   liftM snd $ splitTypeExtraList _lhsIexpectedType+                   {-# LINE 18313 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 183, column 9)+              _hdOexpectedCast =+                  ({-# LINE 183 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 18319 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 184, column 9)+              _tlOexpectedCast =+                  ({-# LINE 184 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedCast+                   {-# LINE 18325 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 186, column 7)+              _lhsOupType =+                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _upType+                   {-# LINE 18331 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 187, column 7)+              _lhsOupEnv =+                  ({-# LINE 187 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   case fmap E.envSelectListEnvironment _upType     of+                     (Just (Right e)) -> e+                     _ -> E.brokeEnvironment+                   {-# LINE 18339 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 18345 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 18351 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 18357 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 18363 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18369 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOdownEnv =+                  ({-# LINE 151 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 18375 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18381 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18387 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 18393 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOdownEnv =+                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 18405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIcolExprs,_hdIoriginalTree) =+                  hd_ _hdOassignmentCastContext _hdOcat _hdOdownEnv _hdOexpectedCast _hdOexpectedType _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIcolExprs,_tlIoriginalTree,_tlIupEnv,_tlIupType) =+                  tl_ _tlOassignmentCastContext _tlOcat _tlOdownEnv _tlOexpectedCast _tlOexpectedType _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType)))+_sem_SelectItemList_Nil :: T_SelectItemList+_sem_SelectItemList_Nil =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: SelectItemList+              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _lhsOupEnv :: Environment+              _lhsOoriginalTree :: SelectItemList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 131, column 9)+              _lhsOannotatedTree =+                  ({-# LINE 131 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   []+                   {-# LINE 18442 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 174, column 9)+              _lhsOcolExprs =+                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   []+                   {-# LINE 18448 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 175, column 9)+              _upType =+                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   Nothing+                   {-# LINE 18454 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 186, column 7)+              _lhsOupType =+                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _upType+                   {-# LINE 18460 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 187, column 7)+              _lhsOupEnv =+                  ({-# LINE 187 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   case fmap E.envSelectListEnvironment _upType     of+                     (Just (Right e)) -> e+                     _ -> E.brokeEnvironment+                   {-# LINE 18468 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 18474 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 18480 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 18486 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType)))+-- SelectList --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         assignmentCastContext : Bool+         cat                  : Catalog+         downEnv              : Environment+         expectedCast         : Bool+         expectedType         : Maybe [TypeExtra]+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : SelectList +         colExprs             : [(NameComponent,Maybe TypeExtra,ScalarExpr)]+         originalTree         : SelectList +         upEnv                : Environment+         upType               : Maybe [(Text,TypeExtra)]+   alternatives:+      alternative SelectList:+         child ann            : Annotation +         child items          : SelectItemList +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data SelectList = SelectList (Annotation) (SelectItemList)+                deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_SelectList :: SelectList ->+                  T_SelectList+_sem_SelectList (SelectList _ann _items) =+    (_sem_SelectList_SelectList (_sem_Annotation _ann) (_sem_SelectItemList _items))+-- semantic domain+type T_SelectList = Bool ->+                    Catalog ->+                    Environment ->+                    Bool ->+                    (Maybe [TypeExtra]) ->+                    TypeCheckFlags ->+                    (Maybe TypeExtra) ->+                    ( SelectList,([(NameComponent,Maybe TypeExtra,ScalarExpr)]),SelectList,Environment,(Maybe [(Text,TypeExtra)]))+data Inh_SelectList = Inh_SelectList {_assignmentCastContext_Inh_SelectList :: Bool,_cat_Inh_SelectList :: Catalog,_downEnv_Inh_SelectList :: Environment,_expectedCast_Inh_SelectList :: Bool,_expectedType_Inh_SelectList :: (Maybe [TypeExtra]),_flags_Inh_SelectList :: TypeCheckFlags,_imCast_Inh_SelectList :: (Maybe TypeExtra)}+data Syn_SelectList = Syn_SelectList {_annotatedTree_Syn_SelectList :: SelectList,_colExprs_Syn_SelectList :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)]),_originalTree_Syn_SelectList :: SelectList,_upEnv_Syn_SelectList :: Environment,_upType_Syn_SelectList :: (Maybe [(Text,TypeExtra)])}+_wrap_SelectList :: T_SelectList ->+                   Inh_SelectList ->+                   Syn_SelectList+_wrap_SelectList sem (Inh_SelectList _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType) = sem _lhsIassignmentCastContext _lhsIcat _lhsIdownEnv _lhsIexpectedCast _lhsIexpectedType _lhsIflags _lhsIimCast+     in  (Syn_SelectList _lhsOannotatedTree _lhsOcolExprs _lhsOoriginalTree _lhsOupEnv _lhsOupType))+_sem_SelectList_SelectList :: T_Annotation ->+                             T_SelectItemList ->+                             T_SelectList+_sem_SelectList_SelectList ann_ items_ =+    (\ _lhsIassignmentCastContext+       _lhsIcat+       _lhsIdownEnv+       _lhsIexpectedCast+       _lhsIexpectedType+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _itemsOexpectedCast :: Bool+              _lhsOannotatedTree :: SelectList+              _lhsOoriginalTree :: SelectList+              _lhsOcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _lhsOupEnv :: Environment+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _itemsOassignmentCastContext :: Bool+              _itemsOcat :: Catalog+              _itemsOdownEnv :: Environment+              _itemsOexpectedType :: (Maybe [TypeExtra])+              _itemsOflags :: TypeCheckFlags+              _itemsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _itemsIannotatedTree :: SelectItemList+              _itemsIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _itemsIoriginalTree :: SelectItemList+              _itemsIupEnv :: Environment+              _itemsIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 204, column 7)+              _annOtpe =+                  ({-# LINE 204 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   Left []+                   {-# LINE 18576 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag"(line 205, column 7)+              _itemsOexpectedCast =+                  ({-# LINE 205 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   True+                   {-# LINE 18582 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SelectList _annIannotatedTree _itemsIannotatedTree+                   {-# LINE 18588 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SelectList _annIoriginalTree _itemsIoriginalTree+                   {-# LINE 18594 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 18600 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 18606 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOcolExprs =+                  ({-# LINE 157 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _itemsIcolExprs+                   {-# LINE 18612 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOupEnv =+                  ({-# LINE 161 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _itemsIupEnv+                   {-# LINE 18618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOupType =+                  ({-# LINE 158 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _itemsIupType+                   {-# LINE 18624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _itemsOassignmentCastContext =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   _lhsIassignmentCastContext+                   {-# LINE 18648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _itemsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18654 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _itemsOdownEnv =+                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIdownEnv+                   {-# LINE 18660 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _itemsOexpectedType =+                  ({-# LINE 159 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/SelectLists.ag" #-}+                   _lhsIexpectedType+                   {-# LINE 18666 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _itemsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18672 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _itemsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18678 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _itemsIannotatedTree,_itemsIcolExprs,_itemsIoriginalTree,_itemsIupEnv,_itemsIupType) =+                  items_ _itemsOassignmentCastContext _itemsOcat _itemsOdownEnv _itemsOexpectedCast _itemsOexpectedType _itemsOflags _itemsOimCast+          in  ( _lhsOannotatedTree,_lhsOcolExprs,_lhsOoriginalTree,_lhsOupEnv,_lhsOupType)))+-- SetClause ---------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : SetClause +         originalTree         : SetClause +   alternatives:+      alternative SetClause:+         child ann            : Annotation +         child setTarget      : {NameComponent}+         child ex             : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative MultiSetClause:+         child ann            : Annotation +         child setTargets     : {[NameComponent]}+         child ex             : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data SetClause = SetClause (Annotation) (NameComponent) (ScalarExpr)+               | MultiSetClause (Annotation) (([NameComponent])) (ScalarExpr)+               deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_SetClause :: SetClause ->+                 T_SetClause+_sem_SetClause (SetClause _ann _setTarget _ex) =+    (_sem_SetClause_SetClause (_sem_Annotation _ann) _setTarget (_sem_ScalarExpr _ex))+_sem_SetClause (MultiSetClause _ann _setTargets _ex) =+    (_sem_SetClause_MultiSetClause (_sem_Annotation _ann) _setTargets (_sem_ScalarExpr _ex))+-- semantic domain+type T_SetClause = Catalog ->+                   TypeCheckFlags ->+                   (Maybe TypeExtra) ->+                   ( SetClause,SetClause)+data Inh_SetClause = Inh_SetClause {_cat_Inh_SetClause :: Catalog,_flags_Inh_SetClause :: TypeCheckFlags,_imCast_Inh_SetClause :: (Maybe TypeExtra)}+data Syn_SetClause = Syn_SetClause {_annotatedTree_Syn_SetClause :: SetClause,_originalTree_Syn_SetClause :: SetClause}+_wrap_SetClause :: T_SetClause ->+                  Inh_SetClause ->+                  Syn_SetClause+_wrap_SetClause sem (Inh_SetClause _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_SetClause _lhsOannotatedTree _lhsOoriginalTree))+_sem_SetClause_SetClause :: T_Annotation ->+                           NameComponent ->+                           T_ScalarExpr ->+                           T_SetClause+_sem_SetClause_SetClause ann_ setTarget_ ex_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exOdownEnv :: Environment+              _exOexpectedCast :: Bool+              _exOexpectedType :: (Maybe TypeExtra)+              _exOodbcFunction :: Bool+              _exOassignmentCastContext :: Bool+              _lhsOannotatedTree :: SetClause+              _lhsOoriginalTree :: SetClause+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exOcat :: Catalog+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: ScalarExpr+              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exIoriginalTree :: ScalarExpr+              _exIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 107, column 27)+              _annOtpe =+                  ({-# LINE 107 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 18766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 108, column 27)+              _exOdownEnv =+                  ({-# LINE 108 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 18772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 109, column 27)+              _exOexpectedCast =+                  ({-# LINE 109 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 18778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 110, column 27)+              _exOexpectedType =+                  ({-# LINE 110 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 18784 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 169, column 32)+              _exOodbcFunction =+                  ({-# LINE 169 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 18790 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 824, column 27)+              _exOassignmentCastContext =+                  ({-# LINE 824 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 18796 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetClause _annIannotatedTree setTarget_ _exIannotatedTree+                   {-# LINE 18802 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetClause _annIoriginalTree setTarget_ _exIoriginalTree+                   {-# LINE 18808 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 18814 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 18820 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18844 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18850 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18856 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_SetClause_MultiSetClause :: T_Annotation ->+                                ([NameComponent]) ->+                                T_ScalarExpr ->+                                T_SetClause+_sem_SetClause_MultiSetClause ann_ setTargets_ ex_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exOdownEnv :: Environment+              _exOexpectedCast :: Bool+              _exOexpectedType :: (Maybe TypeExtra)+              _exOodbcFunction :: Bool+              _exOassignmentCastContext :: Bool+              _lhsOannotatedTree :: SetClause+              _lhsOoriginalTree :: SetClause+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exOcat :: Catalog+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: ScalarExpr+              _exIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exIoriginalTree :: ScalarExpr+              _exIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 103, column 32)+              _annOtpe =+                  ({-# LINE 103 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 18895 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 104, column 32)+              _exOdownEnv =+                  ({-# LINE 104 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 18901 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 105, column 32)+              _exOexpectedCast =+                  ({-# LINE 105 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 18907 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 106, column 32)+              _exOexpectedType =+                  ({-# LINE 106 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 18913 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 169, column 32)+              _exOodbcFunction =+                  ({-# LINE 169 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 18919 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 823, column 32)+              _exOassignmentCastContext =+                  ({-# LINE 823 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 18925 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   MultiSetClause _annIannotatedTree setTargets_ _exIannotatedTree+                   {-# LINE 18931 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   MultiSetClause _annIoriginalTree setTargets_ _exIoriginalTree+                   {-# LINE 18937 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 18943 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 18949 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18955 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18961 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18967 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 18973 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 18979 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 18985 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIcolExprs,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOdownEnv _exOexpectedCast _exOexpectedType _exOflags _exOimCast _exOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- SetClauseList -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : SetClauseList +         originalTree         : SetClauseList +   alternatives:+      alternative Cons:+         child hd             : SetClause +         child tl             : SetClauseList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type SetClauseList = [SetClause]+-- cata+_sem_SetClauseList :: SetClauseList ->+                     T_SetClauseList+_sem_SetClauseList list =+    (Prelude.foldr _sem_SetClauseList_Cons _sem_SetClauseList_Nil (Prelude.map _sem_SetClause list))+-- semantic domain+type T_SetClauseList = Catalog ->+                       TypeCheckFlags ->+                       (Maybe TypeExtra) ->+                       ( SetClauseList,SetClauseList)+data Inh_SetClauseList = Inh_SetClauseList {_cat_Inh_SetClauseList :: Catalog,_flags_Inh_SetClauseList :: TypeCheckFlags,_imCast_Inh_SetClauseList :: (Maybe TypeExtra)}+data Syn_SetClauseList = Syn_SetClauseList {_annotatedTree_Syn_SetClauseList :: SetClauseList,_originalTree_Syn_SetClauseList :: SetClauseList}+_wrap_SetClauseList :: T_SetClauseList ->+                      Inh_SetClauseList ->+                      Syn_SetClauseList+_wrap_SetClauseList sem (Inh_SetClauseList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_SetClauseList _lhsOannotatedTree _lhsOoriginalTree))+_sem_SetClauseList_Cons :: T_SetClause ->+                          T_SetClauseList ->+                          T_SetClauseList+_sem_SetClauseList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: SetClauseList+              _lhsOoriginalTree :: SetClauseList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: SetClause+              _hdIoriginalTree :: SetClause+              _tlIannotatedTree :: SetClauseList+              _tlIoriginalTree :: SetClauseList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 19056 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 19062 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 19068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 19074 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 19080 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 19086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 19092 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 19098 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 19104 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 19110 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_SetClauseList_Nil :: T_SetClauseList+_sem_SetClauseList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: SetClauseList+              _lhsOoriginalTree :: SetClauseList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 19128 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 19134 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 19140 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 19146 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- Statement ---------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : Statement +         originalTree         : Statement +   alternatives:+      alternative QueryStatement:+         child ann            : Annotation +         child ex             : QueryExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Insert:+         child ann            : Annotation +         child table          : Name +         child targetCols     : {[NameComponent]}+         child insData        : QueryExpr +         child returning      : MaybeSelectList +         visit 0:+            local tpe         : {Either [TypeError] [TypeExtra]}+            local tooManyCols : {Maybe [TypeError]}+            local annotatedTree : _+            local originalTree : _+      alternative Update:+         child ann            : Annotation +         child table          : Name +         child assigns        : SetClauseList +         child fromList       : TableRefList +         child whr            : MaybeBoolExpr +         child returning      : MaybeSelectList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Delete:+         child ann            : Annotation +         child table          : Name +         child using          : TableRefList +         child whr            : MaybeBoolExpr +         child returning      : MaybeSelectList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CopyFrom:+         child ann            : Annotation +         child table          : Name +         child targetCols     : {[NameComponent]}+         child source         : {CopyFromSource}+         child opts           : {[CopyFromOption]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CopyData:+         child ann            : Annotation +         child insData        : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CopyTo:+         child ann            : Annotation +         child cp             : {CopyToSource}+         child fn             : {String}+         child opts           : {[CopyToOption]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Truncate:+         child ann            : Annotation +         child tables         : {[Name]}+         child restartIdentity : {RestartIdentity}+         child cascade        : {Cascade}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateTable:+         child ann            : Annotation +         child name           : Name +         child atts           : AttributeDefList +         child cons           : ConstraintList +         child partition      : MaybeTablePartitionDef +         child rep            : {Replace}+         child options        : {[TableOption]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterTable:+         child ann            : Annotation +         child name           : Name +         child operation      : AlterTableOperation +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterDatabase:+         child ann            : Annotation +         child name           : Name +         child operation      : AlterDatabaseOperation +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateSequence:+         child ann            : Annotation +         child name           : Name +         child incr           : {Integer}+         child min            : {Maybe Integer}+         child max            : {Maybe Integer}+         child start          : {Integer}+         child cache          : {Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSequence:+         child ann            : Annotation +         child name           : Name +         child operation      : AlterSequenceOperation +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateTableAs:+         child ann            : Annotation +         child name           : Name +         child rep            : {Replace}+         child expr           : QueryExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateView:+         child ann            : Annotation +         child name           : Name +         child colNames       : {MaybeNameComponentList}+         child expr           : QueryExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterView:+         child ann            : Annotation +         child name           : Name +         child colNames       : {MaybeNameComponentList}+         child expr           : QueryExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateType:+         child ann            : Annotation +         child name           : Name +         child atts           : TypeAttributeDefList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateUser:+         child ann            : Annotation +         child name           : Name +         child password       : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateLogin:+         child ann            : Annotation +         child name           : Name +         child password       : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterUser:+         child ann            : Annotation +         child name           : Name +         child password       : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterLogin:+         child ann            : Annotation +         child name           : Name +         child password       : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateSchema:+         child ann            : Annotation +         child name           : Name +         child owner          : {Maybe Name}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AlterSchema:+         child ann            : Annotation +         child name           : Name +         child operation      : AlterSchemaOperation +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateFunction:+         child ann            : Annotation +         child name           : Name +         child params         : ParamDefList +         child rettype        : TypeName +         child rep            : {Replace}+         child lang           : {Language}+         child body           : FnBody +         child vol            : {Volatility}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateDomain:+         child ann            : Annotation +         child name           : Name +         child typ            : TypeName +         child constraintName : {String}+         child check          : MaybeBoolExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateLanguage:+         child ann            : Annotation +         child name           : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateTrigger:+         child ann            : Annotation +         child name           : {NameComponent}+         child wh             : {TriggerWhen}+         child events         : {[TriggerEvent]}+         child tbl            : Name +         child firing         : {TriggerFire}+         child fnName         : Name +         child fnArgs         : ScalarExprList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative DropFunction:+         child ann            : Annotation +         child ifE            : {IfExists}+         child sigs           : NameTypeNameListPairList +         child cascade        : {Cascade}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative DropSomething:+         child ann            : Annotation +         child dropType       : {DropType}+         child ifE            : {IfExists}+         child names          : {[Name]}+         child cascade        : {Cascade}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative DropTrigger:+         child ann            : Annotation +         child ifE            : {IfExists}+         child name           : {NameComponent}+         child tbl            : Name +         child cascade        : {Cascade}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateDatabase:+         child ann            : Annotation +         child nm             : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Set:+         child ann            : Annotation +         child name           : {String}+         child values         : {[SetValue]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Notify:+         child ann            : Annotation +         child name           : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Into:+         child ann            : Annotation +         child strict         : {Bool}+         child into           : {[Name]}+         child stmt           : Statement +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Assignment:+         child ann            : Annotation +         child target         : Name +         child value          : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Return:+         child ann            : Annotation +         child value          : MaybeScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ReturnNext:+         child ann            : Annotation +         child expr           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ReturnQuery:+         child ann            : Annotation +         child sel            : QueryExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Raise:+         child ann            : Annotation +         child level          : {RaiseType}+         child message        : {String}+         child args           : ScalarExprList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative NullStatement:+         child ann            : Annotation +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Perform:+         child ann            : Annotation +         child expr           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Execute:+         child ann            : Annotation +         child expr           : ScalarExpr +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ForQueryStatement:+         child ann            : Annotation +         child lb             : {Maybe String}+         child var            : {NameComponent}+         child sel            : QueryExpr +         child sts            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ForIntegerStatement:+         child ann            : Annotation +         child lb             : {Maybe String}+         child var            : {NameComponent}+         child from           : ScalarExpr +         child to             : ScalarExpr +         child sts            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative LoopStatement:+         child ann            : Annotation +         child lb             : {Maybe String}+         child sts            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative WhileStatement:+         child ann            : Annotation +         child lb             : {Maybe String}+         child expr           : ScalarExpr +         child sts            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ContinueStatement:+         child ann            : Annotation +         child lb             : {Maybe String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ExitStatement:+         child ann            : Annotation +         child lb             : {Maybe String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CaseStatementSimple:+         child ann            : Annotation +         child val            : ScalarExpr +         child cases          : ScalarExprListStatementListTripleList +         child els            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CaseStatement:+         child ann            : Annotation +         child cases          : ScalarExprListStatementListTripleList +         child els            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative If:+         child ann            : Annotation +         child cases          : ScalarExprStatementListPairList +         child els            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Block:+         child ann            : Annotation +         child lb             : {Maybe String}+         child vars           : VarDefList +         child sts            : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative AntiStatement:+         child string         : {String}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative DeclareStatement:+         child ann            : Annotation +         child ds             : {[(String,TypeName,Maybe ScalarExpr)]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ExecStatement:+         child ann            : Annotation +         child spName         : Name +         child args           : ScalarExprList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative CreateIndexTSQL:+         child ann            : Annotation +         child nm             : {NameComponent}+         child obj            : Name +         child cols           : {[NameComponent]}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data Statement = QueryStatement (Annotation) (QueryExpr)+               | Insert (Annotation) (Name) (([NameComponent])) (QueryExpr) (MaybeSelectList)+               | Update (Annotation) (Name) (SetClauseList) (TableRefList) (MaybeBoolExpr) (MaybeSelectList)+               | Delete (Annotation) (Name) (TableRefList) (MaybeBoolExpr) (MaybeSelectList)+               | CopyFrom (Annotation) (Name) (([NameComponent])) (CopyFromSource) (([CopyFromOption]))+               | CopyData (Annotation) (String)+               | CopyTo (Annotation) (CopyToSource) (String) (([CopyToOption]))+               | Truncate (Annotation) (([Name])) (RestartIdentity) (Cascade)+               | CreateTable (Annotation) (Name) (AttributeDefList) (ConstraintList) (MaybeTablePartitionDef) (Replace) (([TableOption]))+               | AlterTable (Annotation) (Name) (AlterTableOperation)+               | AlterDatabase (Annotation) (Name) (AlterDatabaseOperation)+               | CreateSequence (Annotation) (Name) (Integer) ((Maybe Integer)) ((Maybe Integer)) (Integer) (Integer)+               | AlterSequence (Annotation) (Name) (AlterSequenceOperation)+               | CreateTableAs (Annotation) (Name) (Replace) (QueryExpr)+               | CreateView (Annotation) (Name) (MaybeNameComponentList) (QueryExpr)+               | AlterView (Annotation) (Name) (MaybeNameComponentList) (QueryExpr)+               | CreateType (Annotation) (Name) (TypeAttributeDefList)+               | CreateUser (Annotation) (Name) (String)+               | CreateLogin (Annotation) (Name) (String)+               | AlterUser (Annotation) (Name) (String)+               | AlterLogin (Annotation) (Name) (String)+               | CreateSchema (Annotation) (Name) ((Maybe Name))+               | AlterSchema (Annotation) (Name) (AlterSchemaOperation)+               | CreateFunction (Annotation) (Name) (ParamDefList) (TypeName) (Replace) (Language) (FnBody) (Volatility)+               | CreateDomain (Annotation) (Name) (TypeName) (String) (MaybeBoolExpr)+               | CreateLanguage (Annotation) (String)+               | CreateTrigger (Annotation) (NameComponent) (TriggerWhen) (([TriggerEvent])) (Name) (TriggerFire) (Name) (ScalarExprList)+               | DropFunction (Annotation) (IfExists) (NameTypeNameListPairList) (Cascade)+               | DropSomething (Annotation) (DropType) (IfExists) (([Name])) (Cascade)+               | DropTrigger (Annotation) (IfExists) (NameComponent) (Name) (Cascade)+               | CreateDatabase (Annotation) (Name)+               | Set (Annotation) (String) (([SetValue]))+               | Notify (Annotation) (String)+               | Into (Annotation) (Bool) (([Name])) (Statement)+               | Assignment (Annotation) (Name) (ScalarExpr)+               | Return (Annotation) (MaybeScalarExpr)+               | ReturnNext (Annotation) (ScalarExpr)+               | ReturnQuery (Annotation) (QueryExpr)+               | Raise (Annotation) (RaiseType) (String) (ScalarExprList)+               | NullStatement (Annotation)+               | Perform (Annotation) (ScalarExpr)+               | Execute (Annotation) (ScalarExpr)+               | ForQueryStatement (Annotation) ((Maybe String)) (NameComponent) (QueryExpr) (StatementList)+               | ForIntegerStatement (Annotation) ((Maybe String)) (NameComponent) (ScalarExpr) (ScalarExpr) (StatementList)+               | LoopStatement (Annotation) ((Maybe String)) (StatementList)+               | WhileStatement (Annotation) ((Maybe String)) (ScalarExpr) (StatementList)+               | ContinueStatement (Annotation) ((Maybe String))+               | ExitStatement (Annotation) ((Maybe String))+               | CaseStatementSimple (Annotation) (ScalarExpr) (ScalarExprListStatementListTripleList) (StatementList)+               | CaseStatement (Annotation) (ScalarExprListStatementListTripleList) (StatementList)+               | If (Annotation) (ScalarExprStatementListPairList) (StatementList)+               | Block (Annotation) ((Maybe String)) (VarDefList) (StatementList)+               | AntiStatement (String)+               | DeclareStatement (Annotation) (([(String,TypeName,Maybe ScalarExpr)]))+               | ExecStatement (Annotation) (Name) (ScalarExprList)+               | CreateIndexTSQL (Annotation) (NameComponent) (Name) (([NameComponent]))+               deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_Statement :: Statement ->+                 T_Statement+_sem_Statement (QueryStatement _ann _ex) =+    (_sem_Statement_QueryStatement (_sem_Annotation _ann) (_sem_QueryExpr _ex))+_sem_Statement (Insert _ann _table _targetCols _insData _returning) =+    (_sem_Statement_Insert (_sem_Annotation _ann) (_sem_Name _table) _targetCols (_sem_QueryExpr _insData) (_sem_MaybeSelectList _returning))+_sem_Statement (Update _ann _table _assigns _fromList _whr _returning) =+    (_sem_Statement_Update (_sem_Annotation _ann) (_sem_Name _table) (_sem_SetClauseList _assigns) (_sem_TableRefList _fromList) (_sem_MaybeBoolExpr _whr) (_sem_MaybeSelectList _returning))+_sem_Statement (Delete _ann _table _using _whr _returning) =+    (_sem_Statement_Delete (_sem_Annotation _ann) (_sem_Name _table) (_sem_TableRefList _using) (_sem_MaybeBoolExpr _whr) (_sem_MaybeSelectList _returning))+_sem_Statement (CopyFrom _ann _table _targetCols _source _opts) =+    (_sem_Statement_CopyFrom (_sem_Annotation _ann) (_sem_Name _table) _targetCols _source _opts)+_sem_Statement (CopyData _ann _insData) =+    (_sem_Statement_CopyData (_sem_Annotation _ann) _insData)+_sem_Statement (CopyTo _ann _cp _fn _opts) =+    (_sem_Statement_CopyTo (_sem_Annotation _ann) _cp _fn _opts)+_sem_Statement (Truncate _ann _tables _restartIdentity _cascade) =+    (_sem_Statement_Truncate (_sem_Annotation _ann) _tables _restartIdentity _cascade)+_sem_Statement (CreateTable _ann _name _atts _cons _partition _rep _options) =+    (_sem_Statement_CreateTable (_sem_Annotation _ann) (_sem_Name _name) (_sem_AttributeDefList _atts) (_sem_ConstraintList _cons) (_sem_MaybeTablePartitionDef _partition) _rep _options)+_sem_Statement (AlterTable _ann _name _operation) =+    (_sem_Statement_AlterTable (_sem_Annotation _ann) (_sem_Name _name) (_sem_AlterTableOperation _operation))+_sem_Statement (AlterDatabase _ann _name _operation) =+    (_sem_Statement_AlterDatabase (_sem_Annotation _ann) (_sem_Name _name) (_sem_AlterDatabaseOperation _operation))+_sem_Statement (CreateSequence _ann _name _incr _min _max _start _cache) =+    (_sem_Statement_CreateSequence (_sem_Annotation _ann) (_sem_Name _name) _incr _min _max _start _cache)+_sem_Statement (AlterSequence _ann _name _operation) =+    (_sem_Statement_AlterSequence (_sem_Annotation _ann) (_sem_Name _name) (_sem_AlterSequenceOperation _operation))+_sem_Statement (CreateTableAs _ann _name _rep _expr) =+    (_sem_Statement_CreateTableAs (_sem_Annotation _ann) (_sem_Name _name) _rep (_sem_QueryExpr _expr))+_sem_Statement (CreateView _ann _name _colNames _expr) =+    (_sem_Statement_CreateView (_sem_Annotation _ann) (_sem_Name _name) _colNames (_sem_QueryExpr _expr))+_sem_Statement (AlterView _ann _name _colNames _expr) =+    (_sem_Statement_AlterView (_sem_Annotation _ann) (_sem_Name _name) _colNames (_sem_QueryExpr _expr))+_sem_Statement (CreateType _ann _name _atts) =+    (_sem_Statement_CreateType (_sem_Annotation _ann) (_sem_Name _name) (_sem_TypeAttributeDefList _atts))+_sem_Statement (CreateUser _ann _name _password) =+    (_sem_Statement_CreateUser (_sem_Annotation _ann) (_sem_Name _name) _password)+_sem_Statement (CreateLogin _ann _name _password) =+    (_sem_Statement_CreateLogin (_sem_Annotation _ann) (_sem_Name _name) _password)+_sem_Statement (AlterUser _ann _name _password) =+    (_sem_Statement_AlterUser (_sem_Annotation _ann) (_sem_Name _name) _password)+_sem_Statement (AlterLogin _ann _name _password) =+    (_sem_Statement_AlterLogin (_sem_Annotation _ann) (_sem_Name _name) _password)+_sem_Statement (CreateSchema _ann _name _owner) =+    (_sem_Statement_CreateSchema (_sem_Annotation _ann) (_sem_Name _name) _owner)+_sem_Statement (AlterSchema _ann _name _operation) =+    (_sem_Statement_AlterSchema (_sem_Annotation _ann) (_sem_Name _name) (_sem_AlterSchemaOperation _operation))+_sem_Statement (CreateFunction _ann _name _params _rettype _rep _lang _body _vol) =+    (_sem_Statement_CreateFunction (_sem_Annotation _ann) (_sem_Name _name) (_sem_ParamDefList _params) (_sem_TypeName _rettype) _rep _lang (_sem_FnBody _body) _vol)+_sem_Statement (CreateDomain _ann _name _typ _constraintName _check) =+    (_sem_Statement_CreateDomain (_sem_Annotation _ann) (_sem_Name _name) (_sem_TypeName _typ) _constraintName (_sem_MaybeBoolExpr _check))+_sem_Statement (CreateLanguage _ann _name) =+    (_sem_Statement_CreateLanguage (_sem_Annotation _ann) _name)+_sem_Statement (CreateTrigger _ann _name _wh _events _tbl _firing _fnName _fnArgs) =+    (_sem_Statement_CreateTrigger (_sem_Annotation _ann) _name _wh _events (_sem_Name _tbl) _firing (_sem_Name _fnName) (_sem_ScalarExprList _fnArgs))+_sem_Statement (DropFunction _ann _ifE _sigs _cascade) =+    (_sem_Statement_DropFunction (_sem_Annotation _ann) _ifE (_sem_NameTypeNameListPairList _sigs) _cascade)+_sem_Statement (DropSomething _ann _dropType _ifE _names _cascade) =+    (_sem_Statement_DropSomething (_sem_Annotation _ann) _dropType _ifE _names _cascade)+_sem_Statement (DropTrigger _ann _ifE _name _tbl _cascade) =+    (_sem_Statement_DropTrigger (_sem_Annotation _ann) _ifE _name (_sem_Name _tbl) _cascade)+_sem_Statement (CreateDatabase _ann _nm) =+    (_sem_Statement_CreateDatabase (_sem_Annotation _ann) (_sem_Name _nm))+_sem_Statement (Set _ann _name _values) =+    (_sem_Statement_Set (_sem_Annotation _ann) _name _values)+_sem_Statement (Notify _ann _name) =+    (_sem_Statement_Notify (_sem_Annotation _ann) _name)+_sem_Statement (Into _ann _strict _into _stmt) =+    (_sem_Statement_Into (_sem_Annotation _ann) _strict _into (_sem_Statement _stmt))+_sem_Statement (Assignment _ann _target _value) =+    (_sem_Statement_Assignment (_sem_Annotation _ann) (_sem_Name _target) (_sem_ScalarExpr _value))+_sem_Statement (Return _ann _value) =+    (_sem_Statement_Return (_sem_Annotation _ann) (_sem_MaybeScalarExpr _value))+_sem_Statement (ReturnNext _ann _expr) =+    (_sem_Statement_ReturnNext (_sem_Annotation _ann) (_sem_ScalarExpr _expr))+_sem_Statement (ReturnQuery _ann _sel) =+    (_sem_Statement_ReturnQuery (_sem_Annotation _ann) (_sem_QueryExpr _sel))+_sem_Statement (Raise _ann _level _message _args) =+    (_sem_Statement_Raise (_sem_Annotation _ann) _level _message (_sem_ScalarExprList _args))+_sem_Statement (NullStatement _ann) =+    (_sem_Statement_NullStatement (_sem_Annotation _ann))+_sem_Statement (Perform _ann _expr) =+    (_sem_Statement_Perform (_sem_Annotation _ann) (_sem_ScalarExpr _expr))+_sem_Statement (Execute _ann _expr) =+    (_sem_Statement_Execute (_sem_Annotation _ann) (_sem_ScalarExpr _expr))+_sem_Statement (ForQueryStatement _ann _lb _var _sel _sts) =+    (_sem_Statement_ForQueryStatement (_sem_Annotation _ann) _lb _var (_sem_QueryExpr _sel) (_sem_StatementList _sts))+_sem_Statement (ForIntegerStatement _ann _lb _var _from _to _sts) =+    (_sem_Statement_ForIntegerStatement (_sem_Annotation _ann) _lb _var (_sem_ScalarExpr _from) (_sem_ScalarExpr _to) (_sem_StatementList _sts))+_sem_Statement (LoopStatement _ann _lb _sts) =+    (_sem_Statement_LoopStatement (_sem_Annotation _ann) _lb (_sem_StatementList _sts))+_sem_Statement (WhileStatement _ann _lb _expr _sts) =+    (_sem_Statement_WhileStatement (_sem_Annotation _ann) _lb (_sem_ScalarExpr _expr) (_sem_StatementList _sts))+_sem_Statement (ContinueStatement _ann _lb) =+    (_sem_Statement_ContinueStatement (_sem_Annotation _ann) _lb)+_sem_Statement (ExitStatement _ann _lb) =+    (_sem_Statement_ExitStatement (_sem_Annotation _ann) _lb)+_sem_Statement (CaseStatementSimple _ann _val _cases _els) =+    (_sem_Statement_CaseStatementSimple (_sem_Annotation _ann) (_sem_ScalarExpr _val) (_sem_ScalarExprListStatementListTripleList _cases) (_sem_StatementList _els))+_sem_Statement (CaseStatement _ann _cases _els) =+    (_sem_Statement_CaseStatement (_sem_Annotation _ann) (_sem_ScalarExprListStatementListTripleList _cases) (_sem_StatementList _els))+_sem_Statement (If _ann _cases _els) =+    (_sem_Statement_If (_sem_Annotation _ann) (_sem_ScalarExprStatementListPairList _cases) (_sem_StatementList _els))+_sem_Statement (Block _ann _lb _vars _sts) =+    (_sem_Statement_Block (_sem_Annotation _ann) _lb (_sem_VarDefList _vars) (_sem_StatementList _sts))+_sem_Statement (AntiStatement _string) =+    (_sem_Statement_AntiStatement _string)+_sem_Statement (DeclareStatement _ann _ds) =+    (_sem_Statement_DeclareStatement (_sem_Annotation _ann) _ds)+_sem_Statement (ExecStatement _ann _spName _args) =+    (_sem_Statement_ExecStatement (_sem_Annotation _ann) (_sem_Name _spName) (_sem_ScalarExprList _args))+_sem_Statement (CreateIndexTSQL _ann _nm _obj _cols) =+    (_sem_Statement_CreateIndexTSQL (_sem_Annotation _ann) _nm (_sem_Name _obj) _cols)+-- semantic domain+type T_Statement = Catalog ->+                   TypeCheckFlags ->+                   (Maybe TypeExtra) ->+                   ( Statement,Statement)+data Inh_Statement = Inh_Statement {_cat_Inh_Statement :: Catalog,_flags_Inh_Statement :: TypeCheckFlags,_imCast_Inh_Statement :: (Maybe TypeExtra)}+data Syn_Statement = Syn_Statement {_annotatedTree_Syn_Statement :: Statement,_originalTree_Syn_Statement :: Statement}+_wrap_Statement :: T_Statement ->+                  Inh_Statement ->+                  Syn_Statement+_wrap_Statement sem (Inh_Statement _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_Statement _lhsOannotatedTree _lhsOoriginalTree))+_sem_Statement_QueryStatement :: T_Annotation ->+                                T_QueryExpr ->+                                T_Statement+_sem_Statement_QueryStatement ann_ ex_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exOexpectedType :: (Maybe [TypeExtra])+              _exOouterDownEnv :: (Maybe Environment)+              _exOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exOcat :: Catalog+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: QueryExpr+              _exIoriginalTree :: QueryExpr+              _exIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 19801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 16, column 5)+              _exOexpectedType =+                  ({-# LINE 16 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   liftM (map snd) _exIupType+                   {-# LINE 19807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 91, column 20)+              _exOouterDownEnv =+                  ({-# LINE 91 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Nothing+                   {-# LINE 19813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 838, column 32)+              _exOassignmentCastContext =+                  ({-# LINE 838 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 19819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   QueryStatement _annIannotatedTree _exIannotatedTree+                   {-# LINE 19825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   QueryStatement _annIoriginalTree _exIoriginalTree+                   {-# LINE 19831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 19837 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 19843 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 19849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 19855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 19861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 19867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 19873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 19879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOexpectedType _exOflags _exOimCast _exOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Insert :: T_Annotation ->+                        T_Name ->+                        ([NameComponent]) ->+                        T_QueryExpr ->+                        T_MaybeSelectList ->+                        T_Statement+_sem_Statement_Insert ann_ table_ targetCols_ insData_ returning_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _tpe :: (Either [TypeError] [TypeExtra])+              _tableOtpe :: (Either [TypeError] TypeExtra)+              _insDataOexpectedType :: (Maybe [TypeExtra])+              _insDataOouterDownEnv :: (Maybe Environment)+              _tooManyCols :: (Maybe [TypeError])+              _insDataOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tableOcat :: Catalog+              _tableOflags :: TypeCheckFlags+              _tableOimCast :: (Maybe TypeExtra)+              _insDataOcat :: Catalog+              _insDataOflags :: TypeCheckFlags+              _insDataOimCast :: (Maybe TypeExtra)+              _returningOcat :: Catalog+              _returningOflags :: TypeCheckFlags+              _returningOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tableIannotatedTree :: Name+              _tableIoriginalTree :: Name+              _insDataIannotatedTree :: QueryExpr+              _insDataIoriginalTree :: QueryExpr+              _insDataIupType :: (Maybe [(Text,TypeExtra)])+              _returningIannotatedTree :: MaybeSelectList+              _returningIoriginalTree :: MaybeSelectList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)+              _annOtpe =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Left []+                   {-# LINE 19930 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 25, column 5)+              _tpe =+                  ({-# LINE 25 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   do+                   let tnm = nameComponents _tableIoriginalTree+                   (_,pub,_) <- catLookupTableAndAttrs _lhsIcat tnm+                   case targetCols_ of+                        []  -> return $ map snd pub+                        tcs -> do+                               tcs' <- mapM xnmcString tcs+                               let utcs' = nub tcs'+                               when (length utcs' /= length tcs') $+                                   Left $ map DuplicateColumnName+                                        $ nub (tcs' \\ utcs')+                               forM tcs' $ \x ->+                                   maybe (Left [UnrecognisedIdentifier x])+                                         Right $ lookup x pub+                   {-# LINE 19949 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 44, column 5)+              _tableOtpe =+                  ({-# LINE 44 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Left (either id (const []) _tpe+                         ++ maybe [] id _tooManyCols    )+                   {-# LINE 19956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 47, column 5)+              _insDataOexpectedType =+                  ({-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 19962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 49, column 5)+              _insDataOouterDownEnv =+                  ({-# LINE 49 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Nothing+                   {-# LINE 19968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 54, column 5)+              _tooManyCols =+                  ({-# LINE 54 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   do+                   x <- _insDataIupType+                   y <- either (const Nothing) Just _tpe+                   if (length x > length y)+                       then Just [TooManyColumnsInInsert]+                       else Nothing+                   {-# LINE 19979 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 836, column 24)+              _insDataOassignmentCastContext =+                  ({-# LINE 836 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 19985 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Insert _annIannotatedTree _tableIannotatedTree targetCols_ _insDataIannotatedTree _returningIannotatedTree+                   {-# LINE 19991 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Insert _annIoriginalTree _tableIoriginalTree targetCols_ _insDataIoriginalTree _returningIoriginalTree+                   {-# LINE 19997 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20003 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20009 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20015 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20021 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20027 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20033 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20039 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20045 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _insDataOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20051 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _insDataOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20057 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _insDataOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20063 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20081 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tableIannotatedTree,_tableIoriginalTree) =+                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe+              ( _insDataIannotatedTree,_insDataIoriginalTree,_insDataIupType) =+                  insData_ _insDataOassignmentCastContext _insDataOcat _insDataOexpectedType _insDataOflags _insDataOimCast _insDataOouterDownEnv+              ( _returningIannotatedTree,_returningIoriginalTree) =+                  returning_ _returningOcat _returningOflags _returningOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Update :: T_Annotation ->+                        T_Name ->+                        T_SetClauseList ->+                        T_TableRefList ->+                        T_MaybeBoolExpr ->+                        T_MaybeSelectList ->+                        T_Statement+_sem_Statement_Update ann_ table_ assigns_ fromList_ whr_ returning_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _tableOtpe :: (Either [TypeError] TypeExtra)+              _whrOdownEnv :: Environment+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tableOcat :: Catalog+              _tableOflags :: TypeCheckFlags+              _tableOimCast :: (Maybe TypeExtra)+              _assignsOcat :: Catalog+              _assignsOflags :: TypeCheckFlags+              _assignsOimCast :: (Maybe TypeExtra)+              _fromListOcat :: Catalog+              _fromListOflags :: TypeCheckFlags+              _fromListOimCast :: (Maybe TypeExtra)+              _whrOcat :: Catalog+              _whrOflags :: TypeCheckFlags+              _whrOimCast :: (Maybe TypeExtra)+              _returningOcat :: Catalog+              _returningOflags :: TypeCheckFlags+              _returningOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tableIannotatedTree :: Name+              _tableIoriginalTree :: Name+              _assignsIannotatedTree :: SetClauseList+              _assignsIoriginalTree :: SetClauseList+              _fromListIannotatedTree :: TableRefList+              _fromListIoriginalTree :: TableRefList+              _fromListIupEnv :: Environment+              _whrIannotatedTree :: MaybeBoolExpr+              _whrIoriginalTree :: MaybeBoolExpr+              _returningIannotatedTree :: MaybeSelectList+              _returningIoriginalTree :: MaybeSelectList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 220, column 24)+              _tableOtpe =+                  ({-# LINE 220 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 20143 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 221, column 24)+              _whrOdownEnv =+                  ({-# LINE 221 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 20149 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)+              _annOtpe =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Left []+                   {-# LINE 20155 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Update _annIannotatedTree _tableIannotatedTree _assignsIannotatedTree _fromListIannotatedTree _whrIannotatedTree _returningIannotatedTree+                   {-# LINE 20161 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Update _annIoriginalTree _tableIoriginalTree _assignsIoriginalTree _fromListIoriginalTree _whrIoriginalTree _returningIoriginalTree+                   {-# LINE 20167 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20173 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20179 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20185 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20191 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20197 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20203 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20209 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20215 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _assignsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20221 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _assignsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20227 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _assignsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20233 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fromListOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20239 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fromListOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20245 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fromListOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20251 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _whrOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20257 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _whrOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _whrOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tableIannotatedTree,_tableIoriginalTree) =+                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe+              ( _assignsIannotatedTree,_assignsIoriginalTree) =+                  assigns_ _assignsOcat _assignsOflags _assignsOimCast+              ( _fromListIannotatedTree,_fromListIoriginalTree,_fromListIupEnv) =+                  fromList_ _fromListOcat _fromListOflags _fromListOimCast+              ( _whrIannotatedTree,_whrIoriginalTree) =+                  whr_ _whrOcat _whrOdownEnv _whrOflags _whrOimCast+              ( _returningIannotatedTree,_returningIoriginalTree) =+                  returning_ _returningOcat _returningOflags _returningOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Delete :: T_Annotation ->+                        T_Name ->+                        T_TableRefList ->+                        T_MaybeBoolExpr ->+                        T_MaybeSelectList ->+                        T_Statement+_sem_Statement_Delete ann_ table_ using_ whr_ returning_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _tableOtpe :: (Either [TypeError] TypeExtra)+              _whrOdownEnv :: Environment+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tableOcat :: Catalog+              _tableOflags :: TypeCheckFlags+              _tableOimCast :: (Maybe TypeExtra)+              _usingOcat :: Catalog+              _usingOflags :: TypeCheckFlags+              _usingOimCast :: (Maybe TypeExtra)+              _whrOcat :: Catalog+              _whrOflags :: TypeCheckFlags+              _whrOimCast :: (Maybe TypeExtra)+              _returningOcat :: Catalog+              _returningOflags :: TypeCheckFlags+              _returningOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tableIannotatedTree :: Name+              _tableIoriginalTree :: Name+              _usingIannotatedTree :: TableRefList+              _usingIoriginalTree :: TableRefList+              _usingIupEnv :: Environment+              _whrIannotatedTree :: MaybeBoolExpr+              _whrIoriginalTree :: MaybeBoolExpr+              _returningIannotatedTree :: MaybeSelectList+              _returningIoriginalTree :: MaybeSelectList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 171, column 24)+              _tableOtpe =+                  ({-# LINE 171 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 20347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 172, column 24)+              _whrOdownEnv =+                  ({-# LINE 172 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 20353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)+              _annOtpe =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Left []+                   {-# LINE 20359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Delete _annIannotatedTree _tableIannotatedTree _usingIannotatedTree _whrIannotatedTree _returningIannotatedTree+                   {-# LINE 20365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Delete _annIoriginalTree _tableIoriginalTree _usingIoriginalTree _whrIoriginalTree _returningIoriginalTree+                   {-# LINE 20371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _usingOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20425 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _usingOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20431 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _usingOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20437 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _whrOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20443 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _whrOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20449 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _whrOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20455 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20461 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20467 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _returningOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20473 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tableIannotatedTree,_tableIoriginalTree) =+                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe+              ( _usingIannotatedTree,_usingIoriginalTree,_usingIupEnv) =+                  using_ _usingOcat _usingOflags _usingOimCast+              ( _whrIannotatedTree,_whrIoriginalTree) =+                  whr_ _whrOcat _whrOdownEnv _whrOflags _whrOimCast+              ( _returningIannotatedTree,_returningIoriginalTree) =+                  returning_ _returningOcat _returningOflags _returningOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CopyFrom :: T_Annotation ->+                          T_Name ->+                          ([NameComponent]) ->+                          CopyFromSource ->+                          ([CopyFromOption]) ->+                          T_Statement+_sem_Statement_CopyFrom ann_ table_ targetCols_ source_ opts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _tableOtpe :: (Either [TypeError] TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tableOcat :: Catalog+              _tableOflags :: TypeCheckFlags+              _tableOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tableIannotatedTree :: Name+              _tableIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 138, column 26)+              _tableOtpe =+                  ({-# LINE 138 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 20514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)+              _annOtpe =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Left []+                   {-# LINE 20520 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CopyFrom _annIannotatedTree _tableIannotatedTree targetCols_ source_ opts_+                   {-# LINE 20526 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CopyFrom _annIoriginalTree _tableIoriginalTree targetCols_ source_ opts_+                   {-# LINE 20532 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20538 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20544 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20550 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20556 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20562 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20568 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20574 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tableOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20580 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tableIannotatedTree,_tableIoriginalTree) =+                  table_ _tableOcat _tableOflags _tableOimCast _tableOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CopyData :: T_Annotation ->+                          String ->+                          T_Statement+_sem_Statement_CopyData ann_ insData_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 137, column 26)+              _annOtpe =+                  ({-# LINE 137 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 20606 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CopyData _annIannotatedTree insData_+                   {-# LINE 20612 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CopyData _annIoriginalTree insData_+                   {-# LINE 20618 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20624 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20630 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20636 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20642 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20648 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CopyTo :: T_Annotation ->+                        CopyToSource ->+                        String ->+                        ([CopyToOption]) ->+                        T_Statement+_sem_Statement_CopyTo ann_ cp_ fn_ opts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)+              _annOtpe =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Left []+                   {-# LINE 20674 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CopyTo _annIannotatedTree cp_ fn_ opts_+                   {-# LINE 20680 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CopyTo _annIoriginalTree cp_ fn_ opts_+                   {-# LINE 20686 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20692 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20698 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20704 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20710 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20716 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Truncate :: T_Annotation ->+                          ([Name]) ->+                          RestartIdentity ->+                          Cascade ->+                          T_Statement+_sem_Statement_Truncate ann_ tables_ restartIdentity_ cascade_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag"(line 19, column 5)+              _annOtpe =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Updates.ag" #-}+                   Left []+                   {-# LINE 20742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Truncate _annIannotatedTree tables_ restartIdentity_ cascade_+                   {-# LINE 20748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Truncate _annIoriginalTree tables_ restartIdentity_ cascade_+                   {-# LINE 20754 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20760 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20784 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateTable :: T_Annotation ->+                             T_Name ->+                             T_AttributeDefList ->+                             T_ConstraintList ->+                             T_MaybeTablePartitionDef ->+                             Replace ->+                             ([TableOption]) ->+                             T_Statement+_sem_Statement_CreateTable ann_ name_ atts_ cons_ partition_ rep_ options_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _attsOcat :: Catalog+              _attsOflags :: TypeCheckFlags+              _attsOimCast :: (Maybe TypeExtra)+              _consOcat :: Catalog+              _consOflags :: TypeCheckFlags+              _consOimCast :: (Maybe TypeExtra)+              _partitionOcat :: Catalog+              _partitionOflags :: TypeCheckFlags+              _partitionOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _attsIannotatedTree :: AttributeDefList+              _attsIoriginalTree :: AttributeDefList+              _consIannotatedTree :: ConstraintList+              _consIoriginalTree :: ConstraintList+              _partitionIannotatedTree :: MaybeTablePartitionDef+              _partitionIoriginalTree :: MaybeTablePartitionDef+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 153, column 29)+              _annOtpe =+                  ({-# LINE 153 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 20834 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 154, column 29)+              _nameOtpe =+                  ({-# LINE 154 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 20840 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateTable _annIannotatedTree _nameIannotatedTree _attsIannotatedTree _consIannotatedTree _partitionIannotatedTree rep_ options_+                   {-# LINE 20846 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateTable _annIoriginalTree _nameIoriginalTree _attsIoriginalTree _consIoriginalTree _partitionIoriginalTree rep_ options_+                   {-# LINE 20852 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 20858 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 20864 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20870 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20876 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20882 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20888 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20894 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20900 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20906 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20912 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20918 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _consOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20924 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _consOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20930 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _consOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20936 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 20942 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 20948 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _partitionOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 20954 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _attsIannotatedTree,_attsIoriginalTree) =+                  atts_ _attsOcat _attsOflags _attsOimCast+              ( _consIannotatedTree,_consIoriginalTree) =+                  cons_ _consOcat _consOflags _consOimCast+              ( _partitionIannotatedTree,_partitionIoriginalTree) =+                  partition_ _partitionOcat _partitionOflags _partitionOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AlterTable :: T_Annotation ->+                            T_Name ->+                            T_AlterTableOperation ->+                            T_Statement+_sem_Statement_AlterTable ann_ name_ operation_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _operationOcat :: Catalog+              _operationOflags :: TypeCheckFlags+              _operationOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _operationIannotatedTree :: AlterTableOperation+              _operationIoriginalTree :: AlterTableOperation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 118, column 28)+              _annOtpe =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 20998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 119, column 28)+              _nameOtpe =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterTable _annIannotatedTree _nameIannotatedTree _operationIannotatedTree+                   {-# LINE 21010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterTable _annIoriginalTree _nameIoriginalTree _operationIoriginalTree+                   {-# LINE 21016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21070 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21076 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21082 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _operationIannotatedTree,_operationIoriginalTree) =+                  operation_ _operationOcat _operationOflags _operationOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AlterDatabase :: T_Annotation ->+                               T_Name ->+                               T_AlterDatabaseOperation ->+                               T_Statement+_sem_Statement_AlterDatabase ann_ name_ operation_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _operationOcat :: Catalog+              _operationOflags :: TypeCheckFlags+              _operationOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _operationIannotatedTree :: AlterDatabaseOperation+              _operationIoriginalTree :: AlterDatabaseOperation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 111, column 31)+              _annOtpe =+                  ({-# LINE 111 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21122 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 112, column 31)+              _nameOtpe =+                  ({-# LINE 112 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21128 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterDatabase _annIannotatedTree _nameIannotatedTree _operationIannotatedTree+                   {-# LINE 21134 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterDatabase _annIoriginalTree _nameIoriginalTree _operationIoriginalTree+                   {-# LINE 21140 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21146 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21152 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21158 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21164 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21170 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21176 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21182 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21188 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21194 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21200 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21206 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _operationIannotatedTree,_operationIoriginalTree) =+                  operation_ _operationOcat _operationOflags _operationOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateSequence :: T_Annotation ->+                                T_Name ->+                                Integer ->+                                (Maybe Integer) ->+                                (Maybe Integer) ->+                                Integer ->+                                Integer ->+                                T_Statement+_sem_Statement_CreateSequence ann_ name_ incr_ min_ max_ start_ cache_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 151, column 32)+              _annOtpe =+                  ({-# LINE 151 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21245 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 152, column 32)+              _nameOtpe =+                  ({-# LINE 152 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21251 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateSequence _annIannotatedTree _nameIannotatedTree incr_ min_ max_ start_ cache_+                   {-# LINE 21257 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateSequence _annIoriginalTree _nameIoriginalTree incr_ min_ max_ start_ cache_+                   {-# LINE 21263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21293 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21299 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AlterSequence :: T_Annotation ->+                               T_Name ->+                               T_AlterSequenceOperation ->+                               T_Statement+_sem_Statement_AlterSequence ann_ name_ operation_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _operationOcat :: Catalog+              _operationOflags :: TypeCheckFlags+              _operationOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _operationIannotatedTree :: AlterSequenceOperation+              _operationIoriginalTree :: AlterSequenceOperation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 116, column 31)+              _annOtpe =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21349 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 117, column 31)+              _nameOtpe =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21355 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequence _annIannotatedTree _nameIannotatedTree _operationIannotatedTree+                   {-# LINE 21361 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSequence _annIoriginalTree _nameIoriginalTree _operationIoriginalTree+                   {-# LINE 21367 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21373 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21379 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21391 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21397 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21421 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21427 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21433 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _operationIannotatedTree,_operationIoriginalTree) =+                  operation_ _operationOcat _operationOflags _operationOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateTableAs :: T_Annotation ->+                               T_Name ->+                               Replace ->+                               T_QueryExpr ->+                               T_Statement+_sem_Statement_CreateTableAs ann_ name_ rep_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOouterDownEnv :: (Maybe Environment)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _exprOexpectedType :: (Maybe [TypeExtra])+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _exprIannotatedTree :: QueryExpr+              _exprIoriginalTree :: QueryExpr+              _exprIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 155, column 31)+              _annOtpe =+                  ({-# LINE 155 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21478 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 156, column 31)+              _exprOouterDownEnv =+                  ({-# LINE 156 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 21484 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 157, column 31)+              _nameOtpe =+                  ({-# LINE 157 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21490 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 19, column 5)+              _exprOexpectedType =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   liftM (map snd) _exprIupType+                   {-# LINE 21496 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 828, column 31)+              _exprOassignmentCastContext =+                  ({-# LINE 828 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 21502 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateTableAs _annIannotatedTree _nameIannotatedTree rep_ _exprIannotatedTree+                   {-# LINE 21508 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateTableAs _annIoriginalTree _nameIoriginalTree rep_ _exprIoriginalTree+                   {-# LINE 21514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21520 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21526 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21532 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21538 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21544 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21550 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21556 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21562 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21568 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21574 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21580 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _exprIannotatedTree,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOexpectedType _exprOflags _exprOimCast _exprOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateView :: T_Annotation ->+                            T_Name ->+                            MaybeNameComponentList ->+                            T_QueryExpr ->+                            T_Statement+_sem_Statement_CreateView ann_ name_ colNames_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOouterDownEnv :: (Maybe Environment)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _exprOexpectedType :: (Maybe [TypeExtra])+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _exprIannotatedTree :: QueryExpr+              _exprIoriginalTree :: QueryExpr+              _exprIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 168, column 28)+              _annOtpe =+                  ({-# LINE 168 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 169, column 28)+              _exprOouterDownEnv =+                  ({-# LINE 169 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 21631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 170, column 28)+              _nameOtpe =+                  ({-# LINE 170 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 19, column 5)+              _exprOexpectedType =+                  ({-# LINE 19 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   liftM (map snd) _exprIupType+                   {-# LINE 21643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 830, column 28)+              _exprOassignmentCastContext =+                  ({-# LINE 830 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 21649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateView _annIannotatedTree _nameIannotatedTree colNames_ _exprIannotatedTree+                   {-# LINE 21655 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateView _annIoriginalTree _nameIoriginalTree colNames_ _exprIoriginalTree+                   {-# LINE 21661 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21667 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21673 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21679 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21685 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21691 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21697 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21703 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21709 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21715 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21721 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21727 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _exprIannotatedTree,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOexpectedType _exprOflags _exprOimCast _exprOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AlterView :: T_Annotation ->+                           T_Name ->+                           MaybeNameComponentList ->+                           T_QueryExpr ->+                           T_Statement+_sem_Statement_AlterView ann_ name_ colNames_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOexpectedType :: (Maybe [TypeExtra])+              _exprOouterDownEnv :: (Maybe Environment)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _exprIannotatedTree :: QueryExpr+              _exprIoriginalTree :: QueryExpr+              _exprIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 122, column 27)+              _annOtpe =+                  ({-# LINE 122 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 123, column 27)+              _exprOexpectedType =+                  ({-# LINE 123 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 21778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 124, column 27)+              _exprOouterDownEnv =+                  ({-# LINE 124 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 21784 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 125, column 27)+              _nameOtpe =+                  ({-# LINE 125 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21790 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 825, column 27)+              _exprOassignmentCastContext =+                  ({-# LINE 825 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 21796 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterView _annIannotatedTree _nameIannotatedTree colNames_ _exprIannotatedTree+                   {-# LINE 21802 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterView _annIoriginalTree _nameIoriginalTree colNames_ _exprIoriginalTree+                   {-# LINE 21808 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21814 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21820 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21844 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21850 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21856 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21862 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21868 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21874 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _exprIannotatedTree,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOexpectedType _exprOflags _exprOimCast _exprOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateType :: T_Annotation ->+                            T_Name ->+                            T_TypeAttributeDefList ->+                            T_Statement+_sem_Statement_CreateType ann_ name_ atts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _attsOcat :: Catalog+              _attsOflags :: TypeCheckFlags+              _attsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _attsIannotatedTree :: TypeAttributeDefList+              _attsIoriginalTree :: TypeAttributeDefList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 164, column 28)+              _annOtpe =+                  ({-# LINE 164 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21914 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 165, column 28)+              _nameOtpe =+                  ({-# LINE 165 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 21920 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateType _annIannotatedTree _nameIannotatedTree _attsIannotatedTree+                   {-# LINE 21926 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateType _annIoriginalTree _nameIoriginalTree _attsIoriginalTree+                   {-# LINE 21932 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 21938 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 21944 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21950 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21974 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21980 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 21986 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 21992 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _attsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 21998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _attsIannotatedTree,_attsIoriginalTree) =+                  atts_ _attsOcat _attsOflags _attsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateUser :: T_Annotation ->+                            T_Name ->+                            String ->+                            T_Statement+_sem_Statement_CreateUser ann_ name_ password_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 166, column 28)+              _annOtpe =+                  ({-# LINE 166 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22033 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 167, column 28)+              _nameOtpe =+                  ({-# LINE 167 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22039 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateUser _annIannotatedTree _nameIannotatedTree password_+                   {-# LINE 22045 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateUser _annIoriginalTree _nameIoriginalTree password_+                   {-# LINE 22051 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22057 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22063 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22081 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22087 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22093 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22099 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateLogin :: T_Annotation ->+                             T_Name ->+                             String ->+                             T_Statement+_sem_Statement_CreateLogin ann_ name_ password_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 148, column 29)+              _annOtpe =+                  ({-# LINE 148 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 149, column 29)+              _nameOtpe =+                  ({-# LINE 149 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateLogin _annIannotatedTree _nameIannotatedTree password_+                   {-# LINE 22144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateLogin _annIoriginalTree _nameIoriginalTree password_+                   {-# LINE 22150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22162 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22168 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22180 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22186 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22192 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22198 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AlterUser :: T_Annotation ->+                           T_Name ->+                           String ->+                           T_Statement+_sem_Statement_AlterUser ann_ name_ password_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 120, column 27)+              _annOtpe =+                  ({-# LINE 120 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22231 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 121, column 27)+              _nameOtpe =+                  ({-# LINE 121 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22237 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterUser _annIannotatedTree _nameIannotatedTree password_+                   {-# LINE 22243 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterUser _annIoriginalTree _nameIoriginalTree password_+                   {-# LINE 22249 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22255 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22261 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22267 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22273 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22279 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22285 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22291 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22297 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AlterLogin :: T_Annotation ->+                            T_Name ->+                            String ->+                            T_Statement+_sem_Statement_AlterLogin ann_ name_ password_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 113, column 28)+              _annOtpe =+                  ({-# LINE 113 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22330 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 114, column 28)+              _nameOtpe =+                  ({-# LINE 114 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22336 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterLogin _annIannotatedTree _nameIannotatedTree password_+                   {-# LINE 22342 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterLogin _annIoriginalTree _nameIoriginalTree password_+                   {-# LINE 22348 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22354 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22384 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22390 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22396 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateSchema :: T_Annotation ->+                              T_Name ->+                              (Maybe Name) ->+                              T_Statement+_sem_Statement_CreateSchema ann_ name_ owner_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 150, column 30)+              _annOtpe =+                  ({-# LINE 150 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateSchema _annIannotatedTree _nameIannotatedTree owner_+                   {-# LINE 22435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateSchema _annIoriginalTree _nameIoriginalTree owner_+                   {-# LINE 22441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22483 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22489 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (chain)+              _nameOtpe =+                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   error "missing rule: Statement.CreateSchema.name.tpe"+                   {-# LINE 22495 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AlterSchema :: T_Annotation ->+                             T_Name ->+                             T_AlterSchemaOperation ->+                             T_Statement+_sem_Statement_AlterSchema ann_ name_ operation_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _operationOcat :: Catalog+              _operationOflags :: TypeCheckFlags+              _operationOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _operationIannotatedTree :: AlterSchemaOperation+              _operationIoriginalTree :: AlterSchemaOperation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 115, column 29)+              _annOtpe =+                  ({-# LINE 115 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22533 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSchema _annIannotatedTree _nameIannotatedTree _operationIannotatedTree+                   {-# LINE 22539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AlterSchema _annIoriginalTree _nameIoriginalTree _operationIoriginalTree+                   {-# LINE 22545 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22551 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22563 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22569 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22575 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22581 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22587 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22593 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (chain)+              _nameOtpe =+                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   error "missing rule: Statement.AlterSchema.name.tpe"+                   {-# LINE 22599 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22605 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22611 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _operationOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22617 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _operationIannotatedTree,_operationIoriginalTree) =+                  operation_ _operationOcat _operationOflags _operationOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateFunction :: T_Annotation ->+                                T_Name ->+                                T_ParamDefList ->+                                T_TypeName ->+                                Replace ->+                                Language ->+                                T_FnBody ->+                                Volatility ->+                                T_Statement+_sem_Statement_CreateFunction ann_ name_ params_ rettype_ rep_ lang_ body_ vol_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _paramsOcat :: Catalog+              _paramsOflags :: TypeCheckFlags+              _paramsOimCast :: (Maybe TypeExtra)+              _rettypeOcat :: Catalog+              _rettypeOflags :: TypeCheckFlags+              _rettypeOimCast :: (Maybe TypeExtra)+              _bodyOcat :: Catalog+              _bodyOflags :: TypeCheckFlags+              _bodyOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _paramsIannotatedTree :: ParamDefList+              _paramsIoriginalTree :: ParamDefList+              _rettypeIannotatedTree :: TypeName+              _rettypeInamedType :: (Maybe TypeExtra)+              _rettypeIoriginalTree :: TypeName+              _bodyIannotatedTree :: FnBody+              _bodyIoriginalTree :: FnBody+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 144, column 32)+              _annOtpe =+                  ({-# LINE 144 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22673 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 145, column 32)+              _nameOtpe =+                  ({-# LINE 145 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22679 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateFunction _annIannotatedTree _nameIannotatedTree _paramsIannotatedTree _rettypeIannotatedTree rep_ lang_ _bodyIannotatedTree vol_+                   {-# LINE 22685 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateFunction _annIoriginalTree _nameIoriginalTree _paramsIoriginalTree _rettypeIoriginalTree rep_ lang_ _bodyIoriginalTree vol_+                   {-# LINE 22691 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22697 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22703 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22709 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22715 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22721 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22727 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22733 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22739 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _paramsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22745 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _paramsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22751 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _paramsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22757 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _rettypeOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22763 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _rettypeOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22769 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _rettypeOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22775 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _bodyOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22781 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _bodyOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22787 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _bodyOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22793 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _paramsIannotatedTree,_paramsIoriginalTree) =+                  params_ _paramsOcat _paramsOflags _paramsOimCast+              ( _rettypeIannotatedTree,_rettypeInamedType,_rettypeIoriginalTree) =+                  rettype_ _rettypeOcat _rettypeOflags _rettypeOimCast+              ( _bodyIannotatedTree,_bodyIoriginalTree) =+                  body_ _bodyOcat _bodyOflags _bodyOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateDomain :: T_Annotation ->+                              T_Name ->+                              T_TypeName ->+                              String ->+                              T_MaybeBoolExpr ->+                              T_Statement+_sem_Statement_CreateDomain ann_ name_ typ_ constraintName_ check_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _checkOdownEnv :: Environment+              _nameOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nameOcat :: Catalog+              _nameOflags :: TypeCheckFlags+              _nameOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _checkOcat :: Catalog+              _checkOflags :: TypeCheckFlags+              _checkOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nameIannotatedTree :: Name+              _nameIoriginalTree :: Name+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              _checkIannotatedTree :: MaybeBoolExpr+              _checkIoriginalTree :: MaybeBoolExpr+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 141, column 30)+              _annOtpe =+                  ({-# LINE 141 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22846 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 142, column 30)+              _checkOdownEnv =+                  ({-# LINE 142 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 22852 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 143, column 30)+              _nameOtpe =+                  ({-# LINE 143 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22858 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateDomain _annIannotatedTree _nameIannotatedTree _typIannotatedTree constraintName_ _checkIannotatedTree+                   {-# LINE 22864 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateDomain _annIoriginalTree _nameIoriginalTree _typIoriginalTree constraintName_ _checkIoriginalTree+                   {-# LINE 22870 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 22876 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 22882 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22888 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22894 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22900 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22906 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22912 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22918 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22924 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22930 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22936 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _checkOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 22942 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _checkOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 22948 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _checkOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 22954 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nameIannotatedTree,_nameIoriginalTree) =+                  name_ _nameOcat _nameOflags _nameOimCast _nameOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+              ( _checkIannotatedTree,_checkIoriginalTree) =+                  check_ _checkOcat _checkOdownEnv _checkOflags _checkOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateLanguage :: T_Annotation ->+                                String ->+                                T_Statement+_sem_Statement_CreateLanguage ann_ name_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 147, column 32)+              _annOtpe =+                  ({-# LINE 147 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 22984 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateLanguage _annIannotatedTree name_+                   {-# LINE 22990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateLanguage _annIoriginalTree name_+                   {-# LINE 22996 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23002 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateTrigger :: T_Annotation ->+                               NameComponent ->+                               TriggerWhen ->+                               ([TriggerEvent]) ->+                               T_Name ->+                               TriggerFire ->+                               T_Name ->+                               T_ScalarExprList ->+                               T_Statement+_sem_Statement_CreateTrigger ann_ name_ wh_ events_ tbl_ firing_ fnName_ fnArgs_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _fnArgsOdownEnv :: Environment+              _fnArgsOexpectedCast :: Bool+              _fnArgsOexpectedTypes :: ([TypeExtra])+              _fnNameOtpe :: (Either [TypeError] TypeExtra)+              _tblOtpe :: (Either [TypeError] TypeExtra)+              _fnArgsOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tblOcat :: Catalog+              _tblOflags :: TypeCheckFlags+              _tblOimCast :: (Maybe TypeExtra)+              _fnNameOcat :: Catalog+              _fnNameOflags :: TypeCheckFlags+              _fnNameOimCast :: (Maybe TypeExtra)+              _fnArgsOcat :: Catalog+              _fnArgsOflags :: TypeCheckFlags+              _fnArgsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tblIannotatedTree :: Name+              _tblIoriginalTree :: Name+              _fnNameIannotatedTree :: Name+              _fnNameIoriginalTree :: Name+              _fnArgsIannotatedTree :: ScalarExprList+              _fnArgsIoriginalTree :: ScalarExprList+              _fnArgsIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 158, column 31)+              _annOtpe =+                  ({-# LINE 158 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23078 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 159, column 31)+              _fnArgsOdownEnv =+                  ({-# LINE 159 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 23084 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 160, column 31)+              _fnArgsOexpectedCast =+                  ({-# LINE 160 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 23090 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 161, column 31)+              _fnArgsOexpectedTypes =+                  ({-# LINE 161 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   []+                   {-# LINE 23096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 162, column 31)+              _fnNameOtpe =+                  ({-# LINE 162 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 163, column 31)+              _tblOtpe =+                  ({-# LINE 163 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 829, column 31)+              _fnArgsOassignmentCastContext =+                  ({-# LINE 829 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 23114 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateTrigger _annIannotatedTree name_ wh_ events_ _tblIannotatedTree firing_ _fnNameIannotatedTree _fnArgsIannotatedTree+                   {-# LINE 23120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateTrigger _annIoriginalTree name_ wh_ events_ _tblIoriginalTree firing_ _fnNameIoriginalTree _fnArgsIoriginalTree+                   {-# LINE 23126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23162 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23168 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23180 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23186 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23192 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnArgsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23198 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnArgsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23204 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnArgsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23210 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tblIannotatedTree,_tblIoriginalTree) =+                  tbl_ _tblOcat _tblOflags _tblOimCast _tblOtpe+              ( _fnNameIannotatedTree,_fnNameIoriginalTree) =+                  fnName_ _fnNameOcat _fnNameOflags _fnNameOimCast _fnNameOtpe+              ( _fnArgsIannotatedTree,_fnArgsIoriginalTree,_fnArgsIupTypes) =+                  fnArgs_ _fnArgsOassignmentCastContext _fnArgsOcat _fnArgsOdownEnv _fnArgsOexpectedCast _fnArgsOexpectedTypes _fnArgsOflags _fnArgsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_DropFunction :: T_Annotation ->+                              IfExists ->+                              T_NameTypeNameListPairList ->+                              Cascade ->+                              T_Statement+_sem_Statement_DropFunction ann_ ifE_ sigs_ cascade_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _sigsOcat :: Catalog+              _sigsOflags :: TypeCheckFlags+              _sigsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _sigsIannotatedTree :: NameTypeNameListPairList+              _sigsIoriginalTree :: NameTypeNameListPairList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 173, column 30)+              _annOtpe =+                  ({-# LINE 173 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23247 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropFunction _annIannotatedTree ifE_ _sigsIannotatedTree cascade_+                   {-# LINE 23253 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropFunction _annIoriginalTree ifE_ _sigsIoriginalTree cascade_+                   {-# LINE 23259 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23265 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23271 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23277 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23283 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23289 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _sigsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _sigsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _sigsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23307 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _sigsIannotatedTree,_sigsIoriginalTree) =+                  sigs_ _sigsOcat _sigsOflags _sigsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_DropSomething :: T_Annotation ->+                               DropType ->+                               IfExists ->+                               ([Name]) ->+                               Cascade ->+                               T_Statement+_sem_Statement_DropSomething ann_ dropType_ ifE_ names_ cascade_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 23336 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropSomething _annIannotatedTree dropType_ ifE_ names_ cascade_+                   {-# LINE 23342 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropSomething _annIoriginalTree dropType_ ifE_ names_ cascade_+                   {-# LINE 23348 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23354 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_DropTrigger :: T_Annotation ->+                             IfExists ->+                             NameComponent ->+                             T_Name ->+                             Cascade ->+                             T_Statement+_sem_Statement_DropTrigger ann_ ifE_ name_ tbl_ cascade_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _tblOtpe :: (Either [TypeError] TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tblOcat :: Catalog+              _tblOflags :: TypeCheckFlags+              _tblOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tblIannotatedTree :: Name+              _tblIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 174, column 29)+              _tblOtpe =+                  ({-# LINE 174 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 23417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropTrigger _annIannotatedTree ifE_ name_ _tblIannotatedTree cascade_+                   {-# LINE 23423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DropTrigger _annIoriginalTree ifE_ name_ _tblIoriginalTree cascade_+                   {-# LINE 23429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23447 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23453 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tblIannotatedTree,_tblIoriginalTree) =+                  tbl_ _tblOcat _tblOflags _tblOimCast _tblOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateDatabase :: T_Annotation ->+                                T_Name ->+                                T_Statement+_sem_Statement_CreateDatabase ann_ nm_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _nmOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _nmOcat :: Catalog+              _nmOflags :: TypeCheckFlags+              _nmOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _nmIannotatedTree :: Name+              _nmIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 139, column 32)+              _annOtpe =+                  ({-# LINE 139 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23509 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 140, column 32)+              _nmOtpe =+                  ({-# LINE 140 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23515 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateDatabase _annIannotatedTree _nmIannotatedTree+                   {-# LINE 23521 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateDatabase _annIoriginalTree _nmIoriginalTree+                   {-# LINE 23527 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23533 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23539 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23545 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23551 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23557 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nmOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23563 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nmOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23569 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _nmOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23575 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _nmIannotatedTree,_nmIoriginalTree) =+                  nm_ _nmOcat _nmOflags _nmOimCast _nmOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Set :: T_Annotation ->+                     String ->+                     ([SetValue]) ->+                     T_Statement+_sem_Statement_Set ann_ name_ values_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 219, column 21)+              _annOtpe =+                  ({-# LINE 219 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23602 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Set _annIannotatedTree name_ values_+                   {-# LINE 23608 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Set _annIoriginalTree name_ values_+                   {-# LINE 23614 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23620 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23626 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23632 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23638 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23644 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Notify :: T_Annotation ->+                        String ->+                        T_Statement+_sem_Statement_Notify ann_ name_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 197, column 24)+              _annOtpe =+                  ({-# LINE 197 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23668 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Notify _annIannotatedTree name_+                   {-# LINE 23674 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Notify _annIoriginalTree name_+                   {-# LINE 23680 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23686 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23692 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23698 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23704 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23710 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Into :: T_Annotation ->+                      Bool ->+                      ([Name]) ->+                      T_Statement ->+                      T_Statement+_sem_Statement_Into ann_ strict_ into_ stmt_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _stmtOcat :: Catalog+              _stmtOflags :: TypeCheckFlags+              _stmtOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _stmtIannotatedTree :: Statement+              _stmtIoriginalTree :: Statement+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 23741 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Into _annIannotatedTree strict_ into_ _stmtIannotatedTree+                   {-# LINE 23747 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Into _annIoriginalTree strict_ into_ _stmtIoriginalTree+                   {-# LINE 23753 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23759 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23765 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23771 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23777 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23783 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stmtOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stmtOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stmtOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _stmtIannotatedTree,_stmtIoriginalTree) =+                  stmt_ _stmtOcat _stmtOflags _stmtOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Assignment :: T_Annotation ->+                            T_Name ->+                            T_ScalarExpr ->+                            T_Statement+_sem_Statement_Assignment ann_ target_ value_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _valueOexpectedCast :: Bool+              _valueOexpectedType :: (Maybe TypeExtra)+              _valueOodbcFunction :: Bool+              _annOtpe :: (Either [TypeError] TypeExtra)+              _targetOtpe :: (Either [TypeError] TypeExtra)+              _valueOdownEnv :: Environment+              _valueOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _targetOcat :: Catalog+              _targetOflags :: TypeCheckFlags+              _targetOimCast :: (Maybe TypeExtra)+              _valueOcat :: Catalog+              _valueOflags :: TypeCheckFlags+              _valueOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _targetIannotatedTree :: Name+              _targetIoriginalTree :: Name+              _valueIannotatedTree :: ScalarExpr+              _valueIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _valueIoriginalTree :: ScalarExpr+              _valueIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 126, column 28)+              _valueOexpectedCast =+                  ({-# LINE 126 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 23846 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 127, column 28)+              _valueOexpectedType =+                  ({-# LINE 127 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 23852 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 128, column 28)+              _valueOodbcFunction =+                  ({-# LINE 128 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 23858 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 23864 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 26, column 5)+              _targetOtpe =+                  ({-# LINE 26 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 23870 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 27, column 5)+              _valueOdownEnv =+                  ({-# LINE 27 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 23876 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 826, column 28)+              _valueOassignmentCastContext =+                  ({-# LINE 826 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 23882 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Assignment _annIannotatedTree _targetIannotatedTree _valueIannotatedTree+                   {-# LINE 23888 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Assignment _annIoriginalTree _targetIoriginalTree _valueIoriginalTree+                   {-# LINE 23894 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 23900 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 23906 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23912 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23918 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23924 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _targetOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23930 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _targetOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23936 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _targetOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23942 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 23948 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 23954 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 23960 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _targetIannotatedTree,_targetIoriginalTree) =+                  target_ _targetOcat _targetOflags _targetOimCast _targetOtpe+              ( _valueIannotatedTree,_valueIcolExprs,_valueIoriginalTree,_valueIupType) =+                  value_ _valueOassignmentCastContext _valueOcat _valueOdownEnv _valueOexpectedCast _valueOexpectedType _valueOflags _valueOimCast _valueOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Return :: T_Annotation ->+                        T_MaybeScalarExpr ->+                        T_Statement+_sem_Statement_Return ann_ value_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _valueOdownEnv :: Environment+              _valueOexpectedCast :: Bool+              _valueOexpectedType :: (Maybe TypeExtra)+              _valueOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _valueOcat :: Catalog+              _valueOflags :: TypeCheckFlags+              _valueOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _valueIannotatedTree :: MaybeScalarExpr+              _valueIoriginalTree :: MaybeScalarExpr+              _valueIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 208, column 24)+              _annOtpe =+                  ({-# LINE 208 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 23998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 209, column 24)+              _valueOdownEnv =+                  ({-# LINE 209 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 24004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 210, column 24)+              _valueOexpectedCast =+                  ({-# LINE 210 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 211, column 24)+              _valueOexpectedType =+                  ({-# LINE 211 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 24016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 840, column 24)+              _valueOassignmentCastContext =+                  ({-# LINE 840 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 24022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Return _annIannotatedTree _valueIannotatedTree+                   {-# LINE 24028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Return _annIoriginalTree _valueIoriginalTree+                   {-# LINE 24034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24070 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24076 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valueOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24082 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _valueIannotatedTree,_valueIoriginalTree,_valueIupType) =+                  value_ _valueOassignmentCastContext _valueOcat _valueOdownEnv _valueOexpectedCast _valueOexpectedType _valueOflags _valueOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_ReturnNext :: T_Annotation ->+                            T_ScalarExpr ->+                            T_Statement+_sem_Statement_ReturnNext ann_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOodbcFunction :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 212, column 28)+              _annOtpe =+                  ({-# LINE 212 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 213, column 28)+              _exprOdownEnv =+                  ({-# LINE 213 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 24126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 214, column 28)+              _exprOexpectedCast =+                  ({-# LINE 214 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 215, column 28)+              _exprOexpectedType =+                  ({-# LINE 215 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 24138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 216, column 28)+              _exprOodbcFunction =+                  ({-# LINE 216 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24144 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 841, column 28)+              _exprOassignmentCastContext =+                  ({-# LINE 841 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 24150 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ReturnNext _annIannotatedTree _exprIannotatedTree+                   {-# LINE 24156 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ReturnNext _annIoriginalTree _exprIoriginalTree+                   {-# LINE 24162 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24168 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24174 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24180 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24186 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24192 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24198 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24204 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24210 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_ReturnQuery :: T_Annotation ->+                             T_QueryExpr ->+                             T_Statement+_sem_Statement_ReturnQuery ann_ sel_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _selOouterDownEnv :: (Maybe Environment)+              _selOexpectedType :: (Maybe [TypeExtra])+              _selOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _selOcat :: Catalog+              _selOflags :: TypeCheckFlags+              _selOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _selIannotatedTree :: QueryExpr+              _selIoriginalTree :: QueryExpr+              _selIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 217, column 29)+              _annOtpe =+                  ({-# LINE 217 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24245 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 218, column 29)+              _selOouterDownEnv =+                  ({-# LINE 218 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 24251 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 22, column 5)+              _selOexpectedType =+                  ({-# LINE 22 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   liftM (map snd) _selIupType+                   {-# LINE 24257 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 842, column 29)+              _selOassignmentCastContext =+                  ({-# LINE 842 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 24263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ReturnQuery _annIannotatedTree _selIannotatedTree+                   {-# LINE 24269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ReturnQuery _annIoriginalTree _selIoriginalTree+                   {-# LINE 24275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24293 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24299 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24317 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24323 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =+                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Raise :: T_Annotation ->+                       RaiseType ->+                       String ->+                       T_ScalarExprList ->+                       T_Statement+_sem_Statement_Raise ann_ level_ message_ args_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _argsOdownEnv :: Environment+              _argsOexpectedCast :: Bool+              _argsOexpectedTypes :: ([TypeExtra])+              _argsOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _argsOcat :: Catalog+              _argsOflags :: TypeCheckFlags+              _argsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _argsIannotatedTree :: ScalarExprList+              _argsIoriginalTree :: ScalarExprList+              _argsIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 204, column 23)+              _annOtpe =+                  ({-# LINE 204 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24361 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 205, column 23)+              _argsOdownEnv =+                  ({-# LINE 205 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 24367 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 206, column 23)+              _argsOexpectedCast =+                  ({-# LINE 206 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24373 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 207, column 23)+              _argsOexpectedTypes =+                  ({-# LINE 207 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   []+                   {-# LINE 24379 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 839, column 23)+              _argsOassignmentCastContext =+                  ({-# LINE 839 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 24385 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Raise _annIannotatedTree level_ message_ _argsIannotatedTree+                   {-# LINE 24391 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Raise _annIoriginalTree level_ message_ _argsIoriginalTree+                   {-# LINE 24397 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24421 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24427 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24433 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24439 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24445 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =+                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_NullStatement :: T_Annotation ->+                               T_Statement+_sem_Statement_NullStatement ann_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 198, column 31)+              _annOtpe =+                  ({-# LINE 198 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24470 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NullStatement _annIannotatedTree+                   {-# LINE 24476 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   NullStatement _annIoriginalTree+                   {-# LINE 24482 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24488 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24494 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24500 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24506 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Perform :: T_Annotation ->+                         T_ScalarExpr ->+                         T_Statement+_sem_Statement_Perform ann_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOodbcFunction :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 199, column 25)+              _annOtpe =+                  ({-# LINE 199 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24548 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 200, column 25)+              _exprOdownEnv =+                  ({-# LINE 200 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 24554 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 201, column 25)+              _exprOexpectedCast =+                  ({-# LINE 201 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24560 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 202, column 25)+              _exprOexpectedType =+                  ({-# LINE 202 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 24566 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 203, column 25)+              _exprOodbcFunction =+                  ({-# LINE 203 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24572 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 837, column 25)+              _exprOassignmentCastContext =+                  ({-# LINE 837 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 24578 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Perform _annIannotatedTree _exprIannotatedTree+                   {-# LINE 24584 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Perform _annIoriginalTree _exprIoriginalTree+                   {-# LINE 24590 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24596 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24602 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24608 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24614 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24620 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24626 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24632 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24638 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Execute :: T_Annotation ->+                         T_ScalarExpr ->+                         T_Statement+_sem_Statement_Execute ann_ expr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOodbcFunction :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 179, column 25)+              _annOtpe =+                  ({-# LINE 179 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24676 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 180, column 25)+              _exprOdownEnv =+                  ({-# LINE 180 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 24682 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 181, column 25)+              _exprOexpectedCast =+                  ({-# LINE 181 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24688 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 182, column 25)+              _exprOexpectedType =+                  ({-# LINE 182 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 24694 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 183, column 25)+              _exprOodbcFunction =+                  ({-# LINE 183 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 832, column 25)+              _exprOassignmentCastContext =+                  ({-# LINE 832 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 24706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Execute _annIannotatedTree _exprIannotatedTree+                   {-# LINE 24712 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Execute _annIoriginalTree _exprIoriginalTree+                   {-# LINE 24718 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24730 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24736 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24754 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24760 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_ForQueryStatement :: T_Annotation ->+                                   (Maybe String) ->+                                   NameComponent ->+                                   T_QueryExpr ->+                                   T_StatementList ->+                                   T_Statement+_sem_Statement_ForQueryStatement ann_ lb_ var_ sel_ sts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _selOouterDownEnv :: (Maybe Environment)+              _selOexpectedType :: (Maybe [TypeExtra])+              _selOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _selOcat :: Catalog+              _selOflags :: TypeCheckFlags+              _selOimCast :: (Maybe TypeExtra)+              _stsOcat :: Catalog+              _stsOflags :: TypeCheckFlags+              _stsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _selIannotatedTree :: QueryExpr+              _selIoriginalTree :: QueryExpr+              _selIupType :: (Maybe [(Text,TypeExtra)])+              _stsIannotatedTree :: StatementList+              _stsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 194, column 35)+              _annOtpe =+                  ({-# LINE 194 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24809 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 195, column 35)+              _selOouterDownEnv =+                  ({-# LINE 195 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 24815 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 22, column 5)+              _selOexpectedType =+                  ({-# LINE 22 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   liftM (map snd) _selIupType+                   {-# LINE 24821 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 835, column 35)+              _selOassignmentCastContext =+                  ({-# LINE 835 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 24827 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ForQueryStatement _annIannotatedTree lb_ var_ _selIannotatedTree _stsIannotatedTree+                   {-# LINE 24833 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ForQueryStatement _annIoriginalTree lb_ var_ _selIoriginalTree _stsIoriginalTree+                   {-# LINE 24839 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 24845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 24851 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24857 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24863 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24869 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24875 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24881 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24887 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 24893 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 24899 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 24905 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =+                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv+              ( _stsIannotatedTree,_stsIoriginalTree) =+                  sts_ _stsOcat _stsOflags _stsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_ForIntegerStatement :: T_Annotation ->+                                     (Maybe String) ->+                                     NameComponent ->+                                     T_ScalarExpr ->+                                     T_ScalarExpr ->+                                     T_StatementList ->+                                     T_Statement+_sem_Statement_ForIntegerStatement ann_ lb_ var_ from_ to_ sts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _fromOdownEnv :: Environment+              _fromOexpectedCast :: Bool+              _fromOexpectedType :: (Maybe TypeExtra)+              _fromOodbcFunction :: Bool+              _toOdownEnv :: Environment+              _toOexpectedCast :: Bool+              _toOexpectedType :: (Maybe TypeExtra)+              _toOodbcFunction :: Bool+              _fromOassignmentCastContext :: Bool+              _toOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _fromOcat :: Catalog+              _fromOflags :: TypeCheckFlags+              _fromOimCast :: (Maybe TypeExtra)+              _toOcat :: Catalog+              _toOflags :: TypeCheckFlags+              _toOimCast :: (Maybe TypeExtra)+              _stsOcat :: Catalog+              _stsOflags :: TypeCheckFlags+              _stsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _fromIannotatedTree :: ScalarExpr+              _fromIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _fromIoriginalTree :: ScalarExpr+              _fromIupType :: (Maybe TypeExtra)+              _toIannotatedTree :: ScalarExpr+              _toIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _toIoriginalTree :: ScalarExpr+              _toIupType :: (Maybe TypeExtra)+              _stsIannotatedTree :: StatementList+              _stsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 185, column 37)+              _annOtpe =+                  ({-# LINE 185 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 24966 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 186, column 37)+              _fromOdownEnv =+                  ({-# LINE 186 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 24972 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 187, column 37)+              _fromOexpectedCast =+                  ({-# LINE 187 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24978 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 188, column 37)+              _fromOexpectedType =+                  ({-# LINE 188 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 24984 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 189, column 37)+              _fromOodbcFunction =+                  ({-# LINE 189 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 24990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 190, column 37)+              _toOdownEnv =+                  ({-# LINE 190 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 24996 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 191, column 37)+              _toOexpectedCast =+                  ({-# LINE 191 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 25002 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 192, column 37)+              _toOexpectedType =+                  ({-# LINE 192 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 25008 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 193, column 37)+              _toOodbcFunction =+                  ({-# LINE 193 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 25014 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 833, column 37)+              _fromOassignmentCastContext =+                  ({-# LINE 833 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 25020 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 834, column 37)+              _toOassignmentCastContext =+                  ({-# LINE 834 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 25026 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ForIntegerStatement _annIannotatedTree lb_ var_ _fromIannotatedTree _toIannotatedTree _stsIannotatedTree+                   {-# LINE 25032 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ForIntegerStatement _annIoriginalTree lb_ var_ _fromIoriginalTree _toIoriginalTree _stsIoriginalTree+                   {-# LINE 25038 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25044 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25050 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25056 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25062 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fromOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25074 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fromOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25080 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fromOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25086 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _toOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25092 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _toOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25098 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _toOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25104 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25110 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25116 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25122 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _fromIannotatedTree,_fromIcolExprs,_fromIoriginalTree,_fromIupType) =+                  from_ _fromOassignmentCastContext _fromOcat _fromOdownEnv _fromOexpectedCast _fromOexpectedType _fromOflags _fromOimCast _fromOodbcFunction+              ( _toIannotatedTree,_toIcolExprs,_toIoriginalTree,_toIupType) =+                  to_ _toOassignmentCastContext _toOcat _toOdownEnv _toOexpectedCast _toOexpectedType _toOflags _toOimCast _toOodbcFunction+              ( _stsIannotatedTree,_stsIoriginalTree) =+                  sts_ _stsOcat _stsOflags _stsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_LoopStatement :: T_Annotation ->+                               (Maybe String) ->+                               T_StatementList ->+                               T_Statement+_sem_Statement_LoopStatement ann_ lb_ sts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _stsOcat :: Catalog+              _stsOflags :: TypeCheckFlags+              _stsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _stsIannotatedTree :: StatementList+              _stsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 196, column 31)+              _annOtpe =+                  ({-# LINE 196 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 25158 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   LoopStatement _annIannotatedTree lb_ _stsIannotatedTree+                   {-# LINE 25164 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   LoopStatement _annIoriginalTree lb_ _stsIoriginalTree+                   {-# LINE 25170 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25176 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25182 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25188 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25194 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25200 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25206 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25212 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25218 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _stsIannotatedTree,_stsIoriginalTree) =+                  sts_ _stsOcat _stsOflags _stsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_WhileStatement :: T_Annotation ->+                                (Maybe String) ->+                                T_ScalarExpr ->+                                T_StatementList ->+                                T_Statement+_sem_Statement_WhileStatement ann_ lb_ expr_ sts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _exprOdownEnv :: Environment+              _exprOexpectedCast :: Bool+              _exprOexpectedType :: (Maybe TypeExtra)+              _exprOodbcFunction :: Bool+              _exprOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exprOcat :: Catalog+              _exprOflags :: TypeCheckFlags+              _exprOimCast :: (Maybe TypeExtra)+              _stsOcat :: Catalog+              _stsOflags :: TypeCheckFlags+              _stsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exprIannotatedTree :: ScalarExpr+              _exprIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _exprIoriginalTree :: ScalarExpr+              _exprIupType :: (Maybe TypeExtra)+              _stsIannotatedTree :: StatementList+              _stsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 222, column 32)+              _annOtpe =+                  ({-# LINE 222 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 25263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 223, column 32)+              _exprOdownEnv =+                  ({-# LINE 223 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 25269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 224, column 32)+              _exprOexpectedCast =+                  ({-# LINE 224 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 25275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 225, column 32)+              _exprOexpectedType =+                  ({-# LINE 225 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 25281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 226, column 32)+              _exprOodbcFunction =+                  ({-# LINE 226 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 25287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 843, column 32)+              _exprOassignmentCastContext =+                  ({-# LINE 843 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 25293 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WhileStatement _annIannotatedTree lb_ _exprIannotatedTree _stsIannotatedTree+                   {-# LINE 25299 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WhileStatement _annIoriginalTree lb_ _exprIoriginalTree _stsIoriginalTree+                   {-# LINE 25305 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25311 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25317 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25323 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25329 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25335 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25341 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exprIannotatedTree,_exprIcolExprs,_exprIoriginalTree,_exprIupType) =+                  expr_ _exprOassignmentCastContext _exprOcat _exprOdownEnv _exprOexpectedCast _exprOexpectedType _exprOflags _exprOimCast _exprOodbcFunction+              ( _stsIannotatedTree,_stsIoriginalTree) =+                  sts_ _stsOcat _stsOflags _stsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_ContinueStatement :: T_Annotation ->+                                   (Maybe String) ->+                                   T_Statement+_sem_Statement_ContinueStatement ann_ lb_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 136, column 35)+              _annOtpe =+                  ({-# LINE 136 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 25399 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ContinueStatement _annIannotatedTree lb_+                   {-# LINE 25405 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ContinueStatement _annIoriginalTree lb_+                   {-# LINE 25411 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25417 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25423 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25429 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25435 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25441 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_ExitStatement :: T_Annotation ->+                               (Maybe String) ->+                               T_Statement+_sem_Statement_ExitStatement ann_ lb_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 184, column 31)+              _annOtpe =+                  ({-# LINE 184 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 25465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ExitStatement _annIannotatedTree lb_+                   {-# LINE 25471 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ExitStatement _annIoriginalTree lb_+                   {-# LINE 25477 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25483 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25489 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25495 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25501 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25507 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CaseStatementSimple :: T_Annotation ->+                                     T_ScalarExpr ->+                                     T_ScalarExprListStatementListTripleList ->+                                     T_StatementList ->+                                     T_Statement+_sem_Statement_CaseStatementSimple ann_ val_ cases_ els_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _valOdownEnv :: Environment+              _valOexpectedCast :: Bool+              _valOexpectedType :: (Maybe TypeExtra)+              _valOodbcFunction :: Bool+              _valOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _valOcat :: Catalog+              _valOflags :: TypeCheckFlags+              _valOimCast :: (Maybe TypeExtra)+              _casesOcat :: Catalog+              _casesOflags :: TypeCheckFlags+              _casesOimCast :: (Maybe TypeExtra)+              _elsOcat :: Catalog+              _elsOflags :: TypeCheckFlags+              _elsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _valIannotatedTree :: ScalarExpr+              _valIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _valIoriginalTree :: ScalarExpr+              _valIupType :: (Maybe TypeExtra)+              _casesIannotatedTree :: ScalarExprListStatementListTripleList+              _casesIoriginalTree :: ScalarExprListStatementListTripleList+              _elsIannotatedTree :: StatementList+              _elsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 131, column 37)+              _annOtpe =+                  ({-# LINE 131 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 25555 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 132, column 37)+              _valOdownEnv =+                  ({-# LINE 132 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 25561 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 133, column 37)+              _valOexpectedCast =+                  ({-# LINE 133 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 25567 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 134, column 37)+              _valOexpectedType =+                  ({-# LINE 134 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 25573 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 135, column 37)+              _valOodbcFunction =+                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 25579 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 827, column 37)+              _valOassignmentCastContext =+                  ({-# LINE 827 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 25585 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CaseStatementSimple _annIannotatedTree _valIannotatedTree _casesIannotatedTree _elsIannotatedTree+                   {-# LINE 25591 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CaseStatementSimple _annIoriginalTree _valIoriginalTree _casesIoriginalTree _elsIoriginalTree+                   {-# LINE 25597 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25603 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25609 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25615 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25621 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25627 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25633 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _valOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25645 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25651 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25657 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25663 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25669 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25675 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25681 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _valIannotatedTree,_valIcolExprs,_valIoriginalTree,_valIupType) =+                  val_ _valOassignmentCastContext _valOcat _valOdownEnv _valOexpectedCast _valOexpectedType _valOflags _valOimCast _valOodbcFunction+              ( _casesIannotatedTree,_casesIoriginalTree) =+                  cases_ _casesOcat _casesOflags _casesOimCast+              ( _elsIannotatedTree,_elsIoriginalTree) =+                  els_ _elsOcat _elsOflags _elsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CaseStatement :: T_Annotation ->+                               T_ScalarExprListStatementListTripleList ->+                               T_StatementList ->+                               T_Statement+_sem_Statement_CaseStatement ann_ cases_ els_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _casesOcat :: Catalog+              _casesOflags :: TypeCheckFlags+              _casesOimCast :: (Maybe TypeExtra)+              _elsOcat :: Catalog+              _elsOflags :: TypeCheckFlags+              _elsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _casesIannotatedTree :: ScalarExprListStatementListTripleList+              _casesIoriginalTree :: ScalarExprListStatementListTripleList+              _elsIannotatedTree :: StatementList+              _elsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 130, column 31)+              _annOtpe =+                  ({-# LINE 130 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 25722 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CaseStatement _annIannotatedTree _casesIannotatedTree _elsIannotatedTree+                   {-# LINE 25728 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CaseStatement _annIoriginalTree _casesIoriginalTree _elsIoriginalTree+                   {-# LINE 25734 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25740 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25746 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25752 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25758 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25764 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25770 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25776 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25782 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25788 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25794 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25800 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _casesIannotatedTree,_casesIoriginalTree) =+                  cases_ _casesOcat _casesOflags _casesOimCast+              ( _elsIannotatedTree,_elsIoriginalTree) =+                  els_ _elsOcat _elsOflags _elsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_If :: T_Annotation ->+                    T_ScalarExprStatementListPairList ->+                    T_StatementList ->+                    T_Statement+_sem_Statement_If ann_ cases_ els_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _casesOcat :: Catalog+              _casesOflags :: TypeCheckFlags+              _casesOimCast :: (Maybe TypeExtra)+              _elsOcat :: Catalog+              _elsOflags :: TypeCheckFlags+              _elsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _casesIannotatedTree :: ScalarExprStatementListPairList+              _casesIoriginalTree :: ScalarExprStatementListPairList+              _elsIannotatedTree :: StatementList+              _elsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 25839 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   If _annIannotatedTree _casesIannotatedTree _elsIannotatedTree+                   {-# LINE 25845 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   If _annIoriginalTree _casesIoriginalTree _elsIoriginalTree+                   {-# LINE 25851 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25857 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25863 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25869 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25875 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25881 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25887 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25893 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _casesOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25899 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25905 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25911 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _elsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25917 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _casesIannotatedTree,_casesIoriginalTree) =+                  cases_ _casesOcat _casesOflags _casesOimCast+              ( _elsIannotatedTree,_elsIoriginalTree) =+                  els_ _elsOcat _elsOflags _elsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_Block :: T_Annotation ->+                       (Maybe String) ->+                       T_VarDefList ->+                       T_StatementList ->+                       T_Statement+_sem_Statement_Block ann_ lb_ vars_ sts_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _varsOcat :: Catalog+              _varsOflags :: TypeCheckFlags+              _varsOimCast :: (Maybe TypeExtra)+              _stsOcat :: Catalog+              _stsOflags :: TypeCheckFlags+              _stsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _varsIannotatedTree :: VarDefList+              _varsIoriginalTree :: VarDefList+              _stsIannotatedTree :: StatementList+              _stsIoriginalTree :: StatementList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 129, column 23)+              _annOtpe =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 25957 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Block _annIannotatedTree lb_ _varsIannotatedTree _stsIannotatedTree+                   {-# LINE 25963 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Block _annIoriginalTree lb_ _varsIoriginalTree _stsIoriginalTree+                   {-# LINE 25969 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 25975 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 25981 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 25987 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 25993 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 25999 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _varsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26005 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _varsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26011 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _varsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26017 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26023 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26029 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _stsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26035 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _varsIannotatedTree,_varsIoriginalTree) =+                  vars_ _varsOcat _varsOflags _varsOimCast+              ( _stsIannotatedTree,_stsIoriginalTree) =+                  sts_ _stsOcat _stsOflags _stsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_AntiStatement :: String ->+                               T_Statement+_sem_Statement_AntiStatement string_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AntiStatement string_+                   {-# LINE 26056 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   AntiStatement string_+                   {-# LINE 26062 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 26068 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26074 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_DeclareStatement :: T_Annotation ->+                                  ([(String,TypeName,Maybe ScalarExpr)]) ->+                                  T_Statement+_sem_Statement_DeclareStatement ann_ ds_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 26096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DeclareStatement _annIannotatedTree ds_+                   {-# LINE 26102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   DeclareStatement _annIoriginalTree ds_+                   {-# LINE 26108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 26114 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26120 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26138 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_ExecStatement :: T_Annotation ->+                               T_Name ->+                               T_ScalarExprList ->+                               T_Statement+_sem_Statement_ExecStatement ann_ spName_ args_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _argsOdownEnv :: Environment+              _argsOexpectedCast :: Bool+              _argsOexpectedTypes :: ([TypeExtra])+              _spNameOtpe :: (Either [TypeError] TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _argsOassignmentCastContext :: Bool+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _spNameOcat :: Catalog+              _spNameOflags :: TypeCheckFlags+              _spNameOimCast :: (Maybe TypeExtra)+              _argsOcat :: Catalog+              _argsOflags :: TypeCheckFlags+              _argsOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _spNameIannotatedTree :: Name+              _spNameIoriginalTree :: Name+              _argsIannotatedTree :: ScalarExprList+              _argsIoriginalTree :: ScalarExprList+              _argsIupTypes :: ([Maybe TypeExtra])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 175, column 31)+              _argsOdownEnv =+                  ({-# LINE 175 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 26179 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 176, column 31)+              _argsOexpectedCast =+                  ({-# LINE 176 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 26185 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 177, column 31)+              _argsOexpectedTypes =+                  ({-# LINE 177 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   []+                   {-# LINE 26191 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 178, column 31)+              _spNameOtpe =+                  ({-# LINE 178 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 26197 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 26203 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 831, column 31)+              _argsOassignmentCastContext =+                  ({-# LINE 831 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 26209 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ExecStatement _annIannotatedTree _spNameIannotatedTree _argsIannotatedTree+                   {-# LINE 26215 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ExecStatement _annIoriginalTree _spNameIoriginalTree _argsIoriginalTree+                   {-# LINE 26221 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 26227 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26233 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26239 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26245 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26251 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _spNameOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26257 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _spNameOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26263 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _spNameOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26269 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26275 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26281 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _argsOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26287 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _spNameIannotatedTree,_spNameIoriginalTree) =+                  spName_ _spNameOcat _spNameOflags _spNameOimCast _spNameOtpe+              ( _argsIannotatedTree,_argsIoriginalTree,_argsIupTypes) =+                  args_ _argsOassignmentCastContext _argsOcat _argsOdownEnv _argsOexpectedCast _argsOexpectedTypes _argsOflags _argsOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_Statement_CreateIndexTSQL :: T_Annotation ->+                                 NameComponent ->+                                 T_Name ->+                                 ([NameComponent]) ->+                                 T_Statement+_sem_Statement_CreateIndexTSQL ann_ nm_ obj_ cols_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _objOtpe :: (Either [TypeError] TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: Statement+              _lhsOoriginalTree :: Statement+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _objOcat :: Catalog+              _objOflags :: TypeCheckFlags+              _objOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _objIannotatedTree :: Name+              _objIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 146, column 33)+              _objOtpe =+                  ({-# LINE 146 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 26323 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag"(line 13, column 5)+              _annOtpe =+                  ({-# LINE 13 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Statements.ag" #-}+                   Left []+                   {-# LINE 26329 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateIndexTSQL _annIannotatedTree nm_ _objIannotatedTree cols_+                   {-# LINE 26335 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   CreateIndexTSQL _annIoriginalTree nm_ _objIoriginalTree cols_+                   {-# LINE 26341 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 26347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _objOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _objOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _objOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _objIannotatedTree,_objIoriginalTree) =+                  obj_ _objOcat _objOflags _objOimCast _objOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- StatementList -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : StatementList +         originalTree         : StatementList +   alternatives:+      alternative Cons:+         child hd             : Statement +         child tl             : StatementList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type StatementList = [Statement]+-- cata+_sem_StatementList :: StatementList ->+                     T_StatementList+_sem_StatementList list =+    (Prelude.foldr _sem_StatementList_Cons _sem_StatementList_Nil (Prelude.map _sem_Statement list))+-- semantic domain+type T_StatementList = Catalog ->+                       TypeCheckFlags ->+                       (Maybe TypeExtra) ->+                       ( StatementList,StatementList)+data Inh_StatementList = Inh_StatementList {_cat_Inh_StatementList :: Catalog,_flags_Inh_StatementList :: TypeCheckFlags,_imCast_Inh_StatementList :: (Maybe TypeExtra)}+data Syn_StatementList = Syn_StatementList {_annotatedTree_Syn_StatementList :: StatementList,_originalTree_Syn_StatementList :: StatementList}+_wrap_StatementList :: T_StatementList ->+                      Inh_StatementList ->+                      Syn_StatementList+_wrap_StatementList sem (Inh_StatementList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_StatementList _lhsOannotatedTree _lhsOoriginalTree))+_sem_StatementList_Cons :: T_Statement ->+                          T_StatementList ->+                          T_StatementList+_sem_StatementList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: StatementList+              _lhsOoriginalTree :: StatementList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: Statement+              _hdIoriginalTree :: Statement+              _tlIannotatedTree :: StatementList+              _tlIoriginalTree :: StatementList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 26460 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 26466 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 26472 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26478 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26484 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26490 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26496 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26502 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26508 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26514 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_StatementList_Nil :: T_StatementList+_sem_StatementList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: StatementList+              _lhsOoriginalTree :: StatementList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 26532 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 26538 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 26544 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26550 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- TablePartitionDef -------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : TablePartitionDef +         originalTree         : TablePartitionDef +   alternatives:+      alternative TablePartitionDef:+         child ann            : Annotation +         child colname        : {NameComponent}+         child interval       : {Integer}+         child timeframe      : {TablePartitionDateTimeInterval}+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data TablePartitionDef = TablePartitionDef (Annotation) (NameComponent) (Integer) (TablePartitionDateTimeInterval)+                       deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_TablePartitionDef :: TablePartitionDef ->+                         T_TablePartitionDef+_sem_TablePartitionDef (TablePartitionDef _ann _colname _interval _timeframe) =+    (_sem_TablePartitionDef_TablePartitionDef (_sem_Annotation _ann) _colname _interval _timeframe)+-- semantic domain+type T_TablePartitionDef = Catalog ->+                           TypeCheckFlags ->+                           (Maybe TypeExtra) ->+                           ( TablePartitionDef,TablePartitionDef)+data Inh_TablePartitionDef = Inh_TablePartitionDef {_cat_Inh_TablePartitionDef :: Catalog,_flags_Inh_TablePartitionDef :: TypeCheckFlags,_imCast_Inh_TablePartitionDef :: (Maybe TypeExtra)}+data Syn_TablePartitionDef = Syn_TablePartitionDef {_annotatedTree_Syn_TablePartitionDef :: TablePartitionDef,_originalTree_Syn_TablePartitionDef :: TablePartitionDef}+_wrap_TablePartitionDef :: T_TablePartitionDef ->+                          Inh_TablePartitionDef ->+                          Syn_TablePartitionDef+_wrap_TablePartitionDef sem (Inh_TablePartitionDef _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_TablePartitionDef _lhsOannotatedTree _lhsOoriginalTree))+_sem_TablePartitionDef_TablePartitionDef :: T_Annotation ->+                                           NameComponent ->+                                           Integer ->+                                           TablePartitionDateTimeInterval ->+                                           T_TablePartitionDef+_sem_TablePartitionDef_TablePartitionDef ann_ colname_ interval_ timeframe_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TablePartitionDef+              _lhsOoriginalTree :: TablePartitionDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 227, column 43)+              _annOtpe =+                  ({-# LINE 227 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 26614 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TablePartitionDef _annIannotatedTree colname_ interval_ timeframe_+                   {-# LINE 26620 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TablePartitionDef _annIoriginalTree colname_ interval_ timeframe_+                   {-# LINE 26626 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 26632 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26638 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26644 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26650 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26656 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- TableRef ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : TableRef +         originalTree         : TableRef +         upEnv                : Environment+   alternatives:+      alternative Tref:+         child ann            : Annotation +         child tbl            : Name +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local newAlias    : _+            local annotatedTree : _+            local originalTree : _+      alternative FunTref:+         child ann            : Annotation +         child fn             : ScalarExpr +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local newAlias    : _+            local annotatedTree : _+            local originalTree : _+      alternative SubTref:+         child ann            : Annotation +         child sel            : QueryExpr +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local newAlias    : _+            local annotatedTree : _+            local originalTree : _+      alternative JoinTref:+         child ann            : Annotation +         child tref0          : TableRef +         child nat            : {Natural}+         child joinType       : {JoinType}+         child joinHint       : {Maybe JoinHint}+         child tref1          : TableRef +         child onExpr         : OnExpr +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local newAlias    : _+            local annotatedTree : _+            local originalTree : _+      alternative TableAlias:+         child ann            : Annotation +         child tb             : {NameComponent}+         child tref           : TableRef +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local annotatedTree : _+            local originalTree : _+      alternative FullAlias:+         child ann            : Annotation +         child tb             : {NameComponent}+         child cols           : {[NameComponent]}+         child tref           : TableRef +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local annotatedTree : _+            local originalTree : _+      alternative TableRefParens:+         child ann            : Annotation +         child tref           : TableRef +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local newAlias    : _+            local annotatedTree : _+            local originalTree : _+      alternative OdbcTableRef:+         child ann            : Annotation +         child tref           : TableRef +         visit 0:+            local eEnv        : {Either [TypeError] Environment}+            local newAlias    : _+            local annotatedTree : _+            local originalTree : _+-}+data TableRef = Tref (Annotation) (Name)+              | FunTref (Annotation) (ScalarExpr)+              | SubTref (Annotation) (QueryExpr)+              | JoinTref (Annotation) (TableRef) (Natural) (JoinType) ((Maybe JoinHint)) (TableRef) (OnExpr)+              | TableAlias (Annotation) (NameComponent) (TableRef)+              | FullAlias (Annotation) (NameComponent) (([NameComponent])) (TableRef)+              | TableRefParens (Annotation) (TableRef)+              | OdbcTableRef (Annotation) (TableRef)+              deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_TableRef :: TableRef ->+                T_TableRef+_sem_TableRef (Tref _ann _tbl) =+    (_sem_TableRef_Tref (_sem_Annotation _ann) (_sem_Name _tbl))+_sem_TableRef (FunTref _ann _fn) =+    (_sem_TableRef_FunTref (_sem_Annotation _ann) (_sem_ScalarExpr _fn))+_sem_TableRef (SubTref _ann _sel) =+    (_sem_TableRef_SubTref (_sem_Annotation _ann) (_sem_QueryExpr _sel))+_sem_TableRef (JoinTref _ann _tref0 _nat _joinType _joinHint _tref1 _onExpr) =+    (_sem_TableRef_JoinTref (_sem_Annotation _ann) (_sem_TableRef _tref0) _nat _joinType _joinHint (_sem_TableRef _tref1) (_sem_OnExpr _onExpr))+_sem_TableRef (TableAlias _ann _tb _tref) =+    (_sem_TableRef_TableAlias (_sem_Annotation _ann) _tb (_sem_TableRef _tref))+_sem_TableRef (FullAlias _ann _tb _cols _tref) =+    (_sem_TableRef_FullAlias (_sem_Annotation _ann) _tb _cols (_sem_TableRef _tref))+_sem_TableRef (TableRefParens _ann _tref) =+    (_sem_TableRef_TableRefParens (_sem_Annotation _ann) (_sem_TableRef _tref))+_sem_TableRef (OdbcTableRef _ann _tref) =+    (_sem_TableRef_OdbcTableRef (_sem_Annotation _ann) (_sem_TableRef _tref))+-- semantic domain+type T_TableRef = Catalog ->+                  TypeCheckFlags ->+                  (Maybe TypeExtra) ->+                  ( TableRef,TableRef,Environment)+data Inh_TableRef = Inh_TableRef {_cat_Inh_TableRef :: Catalog,_flags_Inh_TableRef :: TypeCheckFlags,_imCast_Inh_TableRef :: (Maybe TypeExtra)}+data Syn_TableRef = Syn_TableRef {_annotatedTree_Syn_TableRef :: TableRef,_originalTree_Syn_TableRef :: TableRef,_upEnv_Syn_TableRef :: Environment}+_wrap_TableRef :: T_TableRef ->+                 Inh_TableRef ->+                 Syn_TableRef+_wrap_TableRef sem (Inh_TableRef _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_TableRef _lhsOannotatedTree _lhsOoriginalTree _lhsOupEnv))+_sem_TableRef_Tref :: T_Annotation ->+                     T_Name ->+                     T_TableRef+_sem_TableRef_Tref ann_ tbl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _tblOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TableRef+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tblOcat :: Catalog+              _tblOflags :: TypeCheckFlags+              _tblOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tblIannotatedTree :: Name+              _tblIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 26813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 26819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 42, column 7)+              _eEnv =+                  ({-# LINE 42 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   E.envCreateTrefEnvironment _lhsIcat (nameComponents _tblIoriginalTree)+                   {-# LINE 26825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 43, column 7)+              _tblOtpe =+                  ({-# LINE 43 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   Left []+                   {-# LINE 26831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   let mk (q,is) = FullAlias emptyAnnotation+                                            (Nmc q)+                                            (map Nmc is)+                                            $ wrapIfJoin _annotatedTree+                       wrapIfJoin tr = case tr of+                                          JoinTref {} -> TableRefParens emptyAnnotation tr+                                          _ -> tr+                   in maybe _annotatedTree     mk _newAlias+                   {-# LINE 26844 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 150, column 7)+              _newAlias =+                  ({-# LINE 150 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   if tcfAddFullTablerefAliases _lhsIflags+                   then do+                     ((_,n),cs,_) <- either (const Nothing) Just+                                   $ catLookupTableAndAttrs _lhsIcat+                                   (nameComponents _tblIoriginalTree)+                     return (T.unpack n, (map (T.unpack . fst) cs))+                   else Nothing+                   {-# LINE 26856 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Tref _annIannotatedTree _tblIannotatedTree+                   {-# LINE 26862 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Tref _annIoriginalTree _tblIoriginalTree+                   {-# LINE 26868 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 26874 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26880 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26886 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26892 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 26898 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 26904 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tblOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 26910 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tblIannotatedTree,_tblIoriginalTree) =+                  tbl_ _tblOcat _tblOflags _tblOimCast _tblOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRef_FunTref :: T_Annotation ->+                        T_ScalarExpr ->+                        T_TableRef+_sem_TableRef_FunTref ann_ fn_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _fnOdownEnv :: Environment+              _fnOexpectedCast :: Bool+              _fnOexpectedType :: (Maybe TypeExtra)+              _fnOodbcFunction :: Bool+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _lhsOannotatedTree :: TableRef+              _fnOassignmentCastContext :: Bool+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _fnOcat :: Catalog+              _fnOflags :: TypeCheckFlags+              _fnOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _fnIannotatedTree :: ScalarExpr+              _fnIcolExprs :: ([(NameComponent,Maybe TypeExtra,ScalarExpr)])+              _fnIoriginalTree :: ScalarExpr+              _fnIupType :: (Maybe TypeExtra)+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 228, column 24)+              _fnOdownEnv =+                  ({-# LINE 228 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 26950 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 229, column 24)+              _fnOexpectedCast =+                  ({-# LINE 229 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 26956 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 230, column 24)+              _fnOexpectedType =+                  ({-# LINE 230 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Nothing+                   {-# LINE 26962 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 231, column 24)+              _fnOodbcFunction =+                  ({-# LINE 231 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   False+                   {-# LINE 26968 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 26975 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 26981 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 71, column 7)+              _eEnv =+                  ({-# LINE 71 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   Left []+                   {-# LINE 26987 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   let mk (q,is) = FullAlias emptyAnnotation+                                            (Nmc q)+                                            (map Nmc is)+                                            $ wrapIfJoin _annotatedTree+                       wrapIfJoin tr = case tr of+                                          JoinTref {} -> TableRefParens emptyAnnotation tr+                                          _ -> tr+                   in maybe _annotatedTree     mk _newAlias+                   {-# LINE 27000 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)+              _newAlias =+                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   if tcfAddFullTablerefAliases _lhsIflags+                   then do+                     env <- either (const Nothing) Just _eEnv+                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env+                     let qs = map (fst . fst) cs+                     if all (== head qs) qs+                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)+                       else+                                                            Nothing+                   else Nothing+                   {-# LINE 27015 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 844, column 24)+              _fnOassignmentCastContext =+                  ({-# LINE 844 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 27021 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   FunTref _annIannotatedTree _fnIannotatedTree+                   {-# LINE 27027 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   FunTref _annIoriginalTree _fnIoriginalTree+                   {-# LINE 27033 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 27039 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27045 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27051 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27057 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27063 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27069 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _fnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27075 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _fnIannotatedTree,_fnIcolExprs,_fnIoriginalTree,_fnIupType) =+                  fn_ _fnOassignmentCastContext _fnOcat _fnOdownEnv _fnOexpectedCast _fnOexpectedType _fnOflags _fnOimCast _fnOodbcFunction+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRef_SubTref :: T_Annotation ->+                        T_QueryExpr ->+                        T_TableRef+_sem_TableRef_SubTref ann_ sel_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _selOexpectedType :: (Maybe [TypeExtra])+              _lhsOannotatedTree :: TableRef+              _selOouterDownEnv :: (Maybe Environment)+              _selOassignmentCastContext :: Bool+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _selOcat :: Catalog+              _selOflags :: TypeCheckFlags+              _selOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _selIannotatedTree :: QueryExpr+              _selIoriginalTree :: QueryExpr+              _selIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 27113 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 27119 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 58, column 7)+              _eEnv =+                  ({-# LINE 58 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   maybe (Left []) id+                   $ fmap E.envSelectListEnvironment _selIupType+                   {-# LINE 27126 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 60, column 7)+              _selOexpectedType =+                  ({-# LINE 60 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   liftM (map snd) _selIupType+                   {-# LINE 27132 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   let mk (q,is) = FullAlias emptyAnnotation+                                            (Nmc q)+                                            (map Nmc is)+                                            $ wrapIfJoin _annotatedTree+                       wrapIfJoin tr = case tr of+                                          JoinTref {} -> TableRefParens emptyAnnotation tr+                                          _ -> tr+                   in maybe _annotatedTree     mk _newAlias+                   {-# LINE 27145 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)+              _newAlias =+                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   if tcfAddFullTablerefAliases _lhsIflags+                   then do+                     env <- either (const Nothing) Just _eEnv+                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env+                     let qs = map (fst . fst) cs+                     if all (== head qs) qs+                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)+                       else+                                                            Nothing+                   else Nothing+                   {-# LINE 27160 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 93, column 13)+              _selOouterDownEnv =+                  ({-# LINE 93 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Nothing+                   {-# LINE 27166 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 845, column 24)+              _selOassignmentCastContext =+                  ({-# LINE 845 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 27172 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SubTref _annIannotatedTree _selIannotatedTree+                   {-# LINE 27178 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SubTref _annIoriginalTree _selIoriginalTree+                   {-# LINE 27184 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 27190 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27196 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27202 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27208 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27214 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27220 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _selOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27226 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _selIannotatedTree,_selIoriginalTree,_selIupType) =+                  sel_ _selOassignmentCastContext _selOcat _selOexpectedType _selOflags _selOimCast _selOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRef_JoinTref :: T_Annotation ->+                         T_TableRef ->+                         Natural ->+                         JoinType ->+                         (Maybe JoinHint) ->+                         T_TableRef ->+                         T_OnExpr ->+                         T_TableRef+_sem_TableRef_JoinTref ann_ tref0_ nat_ joinType_ joinHint_ tref1_ onExpr_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _onExprOdownEnv :: Environment+              _lhsOannotatedTree :: TableRef+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tref0Ocat :: Catalog+              _tref0Oflags :: TypeCheckFlags+              _tref0OimCast :: (Maybe TypeExtra)+              _tref1Ocat :: Catalog+              _tref1Oflags :: TypeCheckFlags+              _tref1OimCast :: (Maybe TypeExtra)+              _onExprOcat :: Catalog+              _onExprOflags :: TypeCheckFlags+              _onExprOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tref0IannotatedTree :: TableRef+              _tref0IoriginalTree :: TableRef+              _tref0IupEnv :: Environment+              _tref1IannotatedTree :: TableRef+              _tref1IoriginalTree :: TableRef+              _tref1IupEnv :: Environment+              _onExprIannotatedTree :: OnExpr+              _onExprIoriginalTree :: OnExpr+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 27278 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 27284 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 46, column 7)+              _eEnv =+                  ({-# LINE 46 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   E.createJoinTrefEnvironment _lhsIcat+                     _tref0IupEnv _tref1IupEnv (convertJoinType joinType_)+                     $ case (joinType_,_onExprIoriginalTree) of+                        (x,Nothing) | x /= Cross -> Nothing+                        (_,Just (JoinUsing _ nms)) -> Just nms+                        _ -> Just []+                   {-# LINE 27295 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 56, column 7)+              _onExprOdownEnv =+                  ({-# LINE 56 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 27301 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   let mk (q,is) = FullAlias emptyAnnotation+                                            (Nmc q)+                                            (map Nmc is)+                                            $ wrapIfJoin _annotatedTree+                       wrapIfJoin tr = case tr of+                                          JoinTref {} -> TableRefParens emptyAnnotation tr+                                          _ -> tr+                   in maybe _annotatedTree     mk _newAlias+                   {-# LINE 27314 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)+              _newAlias =+                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   if tcfAddFullTablerefAliases _lhsIflags+                   then do+                     env <- either (const Nothing) Just _eEnv+                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env+                     let qs = map (fst . fst) cs+                     if all (== head qs) qs+                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)+                       else+                                                            Nothing+                   else Nothing+                   {-# LINE 27329 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   JoinTref _annIannotatedTree _tref0IannotatedTree nat_ joinType_ joinHint_ _tref1IannotatedTree _onExprIannotatedTree+                   {-# LINE 27335 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   JoinTref _annIoriginalTree _tref0IoriginalTree nat_ joinType_ joinHint_ _tref1IoriginalTree _onExprIoriginalTree+                   {-# LINE 27341 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 27347 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27353 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27359 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27365 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tref0Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27371 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tref0Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27377 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tref0OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27383 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tref1Ocat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27389 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tref1Oflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27395 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tref1OimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27401 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _onExprOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27407 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _onExprOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27413 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _onExprOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27419 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tref0IannotatedTree,_tref0IoriginalTree,_tref0IupEnv) =+                  tref0_ _tref0Ocat _tref0Oflags _tref0OimCast+              ( _tref1IannotatedTree,_tref1IoriginalTree,_tref1IupEnv) =+                  tref1_ _tref1Ocat _tref1Oflags _tref1OimCast+              ( _onExprIannotatedTree,_onExprIoriginalTree) =+                  onExpr_ _onExprOcat _onExprOdownEnv _onExprOflags _onExprOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRef_TableAlias :: T_Annotation ->+                           NameComponent ->+                           T_TableRef ->+                           T_TableRef+_sem_TableRef_TableAlias ann_ tb_ tref_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _lhsOannotatedTree :: TableRef+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _trefOcat :: Catalog+              _trefOflags :: TypeCheckFlags+              _trefOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _trefIannotatedTree :: TableRef+              _trefIoriginalTree :: TableRef+              _trefIupEnv :: Environment+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 27459 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 27465 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 68, column 7)+              _eEnv =+                  ({-# LINE 68 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   Right $ E.createTrefAliasedEnvironment+                           (ncStrT tb_) Nothing _trefIupEnv+                   {-# LINE 27472 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 124, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 124 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   case _trefIannotatedTree of+                     FullAlias _ _ c tr -> FullAlias emptyAnnotation tb_ c tr+                     TableAlias _ _ tr -> TableAlias emptyAnnotation tb_ tr+                     _ -> _annotatedTree+                   {-# LINE 27481 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TableAlias _annIannotatedTree tb_ _trefIannotatedTree+                   {-# LINE 27487 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TableAlias _annIoriginalTree tb_ _trefIoriginalTree+                   {-# LINE 27493 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 27499 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27505 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27511 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =+                  tref_ _trefOcat _trefOflags _trefOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRef_FullAlias :: T_Annotation ->+                          NameComponent ->+                          ([NameComponent]) ->+                          T_TableRef ->+                          T_TableRef+_sem_TableRef_FullAlias ann_ tb_ cols_ tref_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _lhsOannotatedTree :: TableRef+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _trefOcat :: Catalog+              _trefOflags :: TypeCheckFlags+              _trefOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _trefIannotatedTree :: TableRef+              _trefIoriginalTree :: TableRef+              _trefIupEnv :: Environment+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 27572 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 27578 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 65, column 7)+              _eEnv =+                  ({-# LINE 65 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   Right $ E.createTrefAliasedEnvironment+                           (ncStrT tb_) (Just $ map ncStrT cols_) _trefIupEnv+                   {-# LINE 27585 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 103, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 103 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   case _trefIannotatedTree of+                     FullAlias _ t _ tr -> FullAlias emptyAnnotation+                                             (if tb_ == Nmc "" then t else tb_) cols_                       tr+                     TableAlias _ _ tr -> FullAlias emptyAnnotation tb_ cols_                        tr+                     _ -> _annotatedTree+                   {-# LINE 27595 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   FullAlias _annIannotatedTree tb_ cols_ _trefIannotatedTree+                   {-# LINE 27601 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   FullAlias _annIoriginalTree tb_ cols_ _trefIoriginalTree+                   {-# LINE 27607 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 27613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =+                  tref_ _trefOcat _trefOflags _trefOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRef_TableRefParens :: T_Annotation ->+                               T_TableRef ->+                               T_TableRef+_sem_TableRef_TableRefParens ann_ tref_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _lhsOannotatedTree :: TableRef+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _trefOcat :: Catalog+              _trefOflags :: TypeCheckFlags+              _trefOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _trefIannotatedTree :: TableRef+              _trefIoriginalTree :: TableRef+              _trefIupEnv :: Environment+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 27684 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 27690 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 63, column 7)+              _eEnv =+                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   Right $ _trefIupEnv+                   {-# LINE 27696 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   let mk (q,is) = FullAlias emptyAnnotation+                                            (Nmc q)+                                            (map Nmc is)+                                            $ wrapIfJoin _annotatedTree+                       wrapIfJoin tr = case tr of+                                          JoinTref {} -> TableRefParens emptyAnnotation tr+                                          _ -> tr+                   in maybe _annotatedTree     mk _newAlias+                   {-# LINE 27709 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)+              _newAlias =+                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   if tcfAddFullTablerefAliases _lhsIflags+                   then do+                     env <- either (const Nothing) Just _eEnv+                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env+                     let qs = map (fst . fst) cs+                     if all (== head qs) qs+                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)+                       else+                                                            Nothing+                   else Nothing+                   {-# LINE 27724 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TableRefParens _annIannotatedTree _trefIannotatedTree+                   {-# LINE 27730 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TableRefParens _annIoriginalTree _trefIoriginalTree+                   {-# LINE 27736 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 27742 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27748 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27754 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27760 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27766 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =+                  tref_ _trefOcat _trefOflags _trefOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRef_OdbcTableRef :: T_Annotation ->+                             T_TableRef ->+                             T_TableRef+_sem_TableRef_OdbcTableRef ann_ tref_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOupEnv :: Environment+              _eEnv :: (Either [TypeError] Environment)+              _lhsOannotatedTree :: TableRef+              _lhsOoriginalTree :: TableRef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _trefOcat :: Catalog+              _trefOflags :: TypeCheckFlags+              _trefOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _trefIannotatedTree :: TableRef+              _trefIoriginalTree :: TableRef+              _trefIupEnv :: Environment+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 33, column 7)+              _annOtpe =+                  ({-# LINE 33 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either Left (Right . mkTypeExtraNN . TrefType)+                   (_eEnv     >>= E.envExpandStar Nothing)+                   {-# LINE 27813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 36, column 7)+              _lhsOupEnv =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   either (const E.brokeEnvironment) id _eEnv+                   {-# LINE 27819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 63, column 7)+              _eEnv =+                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   Right $ _trefIupEnv+                   {-# LINE 27825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 75, column 7)+              _lhsOannotatedTree =+                  ({-# LINE 75 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   let mk (q,is) = FullAlias emptyAnnotation+                                            (Nmc q)+                                            (map Nmc is)+                                            $ wrapIfJoin _annotatedTree+                       wrapIfJoin tr = case tr of+                                          JoinTref {} -> TableRefParens emptyAnnotation tr+                                          _ -> tr+                   in maybe _annotatedTree     mk _newAlias+                   {-# LINE 27838 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 135, column 7)+              _newAlias =+                  ({-# LINE 135 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   if tcfAddFullTablerefAliases _lhsIflags+                   then do+                     env <- either (const Nothing) Just _eEnv+                     cs <- either (const Nothing) Just $ E.envExpandStar Nothing env+                     let qs = map (fst . fst) cs+                     if all (== head qs) qs+                       then return (T.unpack $ head qs, map (T.unpack . snd . fst) cs)+                       else+                                                            Nothing+                   else Nothing+                   {-# LINE 27853 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   OdbcTableRef _annIannotatedTree _trefIannotatedTree+                   {-# LINE 27859 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   OdbcTableRef _annIoriginalTree _trefIoriginalTree+                   {-# LINE 27865 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 27871 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27877 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27883 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27889 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 27895 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 27901 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _trefOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 27907 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _trefIannotatedTree,_trefIoriginalTree,_trefIupEnv) =+                  tref_ _trefOcat _trefOflags _trefOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+-- TableRefList ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : TableRefList +         originalTree         : TableRefList +         upEnv                : Environment+   alternatives:+      alternative Cons:+         child hd             : TableRef +         child tl             : TableRefList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type TableRefList = [TableRef]+-- cata+_sem_TableRefList :: TableRefList ->+                    T_TableRefList+_sem_TableRefList list =+    (Prelude.foldr _sem_TableRefList_Cons _sem_TableRefList_Nil (Prelude.map _sem_TableRef list))+-- semantic domain+type T_TableRefList = Catalog ->+                      TypeCheckFlags ->+                      (Maybe TypeExtra) ->+                      ( TableRefList,TableRefList,Environment)+data Inh_TableRefList = Inh_TableRefList {_cat_Inh_TableRefList :: Catalog,_flags_Inh_TableRefList :: TypeCheckFlags,_imCast_Inh_TableRefList :: (Maybe TypeExtra)}+data Syn_TableRefList = Syn_TableRefList {_annotatedTree_Syn_TableRefList :: TableRefList,_originalTree_Syn_TableRefList :: TableRefList,_upEnv_Syn_TableRefList :: Environment}+_wrap_TableRefList :: T_TableRefList ->+                     Inh_TableRefList ->+                     Syn_TableRefList+_wrap_TableRefList sem (Inh_TableRefList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_TableRefList _lhsOannotatedTree _lhsOoriginalTree _lhsOupEnv))+_sem_TableRefList_Cons :: T_TableRef ->+                         T_TableRefList ->+                         T_TableRefList+_sem_TableRefList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOupEnv :: Environment+              _lhsOannotatedTree :: TableRefList+              _lhsOoriginalTree :: TableRefList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: TableRef+              _hdIoriginalTree :: TableRef+              _hdIupEnv :: Environment+              _tlIannotatedTree :: TableRefList+              _tlIoriginalTree :: TableRefList+              _tlIupEnv :: Environment+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 20, column 7)+              _lhsOupEnv =+                  ({-# LINE 20 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   if E.isEmptyEnv _tlIupEnv+                   then _hdIupEnv+                   else+                          either (error . show) id $+                          E.createJoinTrefEnvironment _lhsIcat _hdIupEnv _tlIupEnv E.Inner $ Just []+                   {-# LINE 27986 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 27992 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 27998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree,_hdIupEnv) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree,_tlIupEnv) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+_sem_TableRefList_Nil :: T_TableRefList+_sem_TableRefList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOupEnv :: Environment+              _lhsOannotatedTree :: TableRefList+              _lhsOoriginalTree :: TableRefList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag"(line 18, column 9)+              _lhsOupEnv =+                  ({-# LINE 18 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/TableRefs.ag" #-}+                   E.emptyEnvironment+                   {-# LINE 28065 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 28071 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 28077 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28083 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28089 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree,_lhsOupEnv)))+-- TypeAttributeDef --------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : TypeAttributeDef +         originalTree         : TypeAttributeDef +   alternatives:+      alternative TypeAttDef:+         child ann            : Annotation +         child name           : {NameComponent}+         child typ            : TypeName +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data TypeAttributeDef = TypeAttDef (Annotation) (NameComponent) (TypeName)+                      deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_TypeAttributeDef :: TypeAttributeDef ->+                        T_TypeAttributeDef+_sem_TypeAttributeDef (TypeAttDef _ann _name _typ) =+    (_sem_TypeAttributeDef_TypeAttDef (_sem_Annotation _ann) _name (_sem_TypeName _typ))+-- semantic domain+type T_TypeAttributeDef = Catalog ->+                          TypeCheckFlags ->+                          (Maybe TypeExtra) ->+                          ( TypeAttributeDef,TypeAttributeDef)+data Inh_TypeAttributeDef = Inh_TypeAttributeDef {_cat_Inh_TypeAttributeDef :: Catalog,_flags_Inh_TypeAttributeDef :: TypeCheckFlags,_imCast_Inh_TypeAttributeDef :: (Maybe TypeExtra)}+data Syn_TypeAttributeDef = Syn_TypeAttributeDef {_annotatedTree_Syn_TypeAttributeDef :: TypeAttributeDef,_originalTree_Syn_TypeAttributeDef :: TypeAttributeDef}+_wrap_TypeAttributeDef :: T_TypeAttributeDef ->+                         Inh_TypeAttributeDef ->+                         Syn_TypeAttributeDef+_wrap_TypeAttributeDef sem (Inh_TypeAttributeDef _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_TypeAttributeDef _lhsOannotatedTree _lhsOoriginalTree))+_sem_TypeAttributeDef_TypeAttDef :: T_Annotation ->+                                   NameComponent ->+                                   T_TypeName ->+                                   T_TypeAttributeDef+_sem_TypeAttributeDef_TypeAttDef ann_ name_ typ_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TypeAttributeDef+              _lhsOoriginalTree :: TypeAttributeDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 232, column 35)+              _annOtpe =+                  ({-# LINE 232 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 28157 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TypeAttDef _annIannotatedTree name_ _typIannotatedTree+                   {-# LINE 28163 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   TypeAttDef _annIoriginalTree name_ _typIoriginalTree+                   {-# LINE 28169 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28175 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28181 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28187 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28193 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28199 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28205 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28211 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28217 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- TypeAttributeDefList ----------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : TypeAttributeDefList +         originalTree         : TypeAttributeDefList +   alternatives:+      alternative Cons:+         child hd             : TypeAttributeDef +         child tl             : TypeAttributeDefList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type TypeAttributeDefList = [TypeAttributeDef]+-- cata+_sem_TypeAttributeDefList :: TypeAttributeDefList ->+                            T_TypeAttributeDefList+_sem_TypeAttributeDefList list =+    (Prelude.foldr _sem_TypeAttributeDefList_Cons _sem_TypeAttributeDefList_Nil (Prelude.map _sem_TypeAttributeDef list))+-- semantic domain+type T_TypeAttributeDefList = Catalog ->+                              TypeCheckFlags ->+                              (Maybe TypeExtra) ->+                              ( TypeAttributeDefList,TypeAttributeDefList)+data Inh_TypeAttributeDefList = Inh_TypeAttributeDefList {_cat_Inh_TypeAttributeDefList :: Catalog,_flags_Inh_TypeAttributeDefList :: TypeCheckFlags,_imCast_Inh_TypeAttributeDefList :: (Maybe TypeExtra)}+data Syn_TypeAttributeDefList = Syn_TypeAttributeDefList {_annotatedTree_Syn_TypeAttributeDefList :: TypeAttributeDefList,_originalTree_Syn_TypeAttributeDefList :: TypeAttributeDefList}+_wrap_TypeAttributeDefList :: T_TypeAttributeDefList ->+                             Inh_TypeAttributeDefList ->+                             Syn_TypeAttributeDefList+_wrap_TypeAttributeDefList sem (Inh_TypeAttributeDefList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_TypeAttributeDefList _lhsOannotatedTree _lhsOoriginalTree))+_sem_TypeAttributeDefList_Cons :: T_TypeAttributeDef ->+                                 T_TypeAttributeDefList ->+                                 T_TypeAttributeDefList+_sem_TypeAttributeDefList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: TypeAttributeDefList+              _lhsOoriginalTree :: TypeAttributeDefList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: TypeAttributeDef+              _hdIoriginalTree :: TypeAttributeDef+              _tlIannotatedTree :: TypeAttributeDefList+              _tlIoriginalTree :: TypeAttributeDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 28288 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 28294 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28300 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28306 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28312 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28318 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28324 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28330 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28336 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28342 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_TypeAttributeDefList_Nil :: T_TypeAttributeDefList+_sem_TypeAttributeDefList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: TypeAttributeDefList+              _lhsOoriginalTree :: TypeAttributeDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 28360 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 28366 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28372 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28378 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- TypeName ----------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : TypeName +         namedType            : Maybe TypeExtra+         originalTree         : TypeName +   alternatives:+      alternative SimpleTypeName:+         child ann            : Annotation +         child tn             : Name +         visit 0:+            local canType     : {[NameComponent] -> [NameComponent]}+            local tpe         : {Either [TypeError] TypeExtra}+            local annotatedTree : _+            local originalTree : _+      alternative PrecTypeName:+         child ann            : Annotation +         child tn             : Name +         child prec           : {Integer}+         visit 0:+            local canType     : {[NameComponent] -> [NameComponent]}+            local tpe         : {Either [TypeError] TypeExtra}+            local annotatedTree : _+            local originalTree : _+      alternative Prec2TypeName:+         child ann            : Annotation +         child tn             : Name +         child prec           : {Integer}+         child prec1          : {Integer}+         visit 0:+            local canType     : {[NameComponent] -> [NameComponent]}+            local tpe         : {Either [TypeError] TypeExtra}+            local annotatedTree : _+            local originalTree : _+      alternative ArrayTypeName:+         child ann            : Annotation +         child typ            : TypeName +         visit 0:+            local canType     : {[NameComponent] -> [NameComponent]}+            local tpe         : {Either [TypeError] TypeExtra}+            local annotatedTree : _+            local originalTree : _+      alternative SetOfTypeName:+         child ann            : Annotation +         child typ            : TypeName +         visit 0:+            local canType     : {[NameComponent] -> [NameComponent]}+            local tpe         : {Either [TypeError] TypeExtra}+            local annotatedTree : _+            local originalTree : _+-}+data TypeName = SimpleTypeName (Annotation) (Name)+              | PrecTypeName (Annotation) (Name) (Integer)+              | Prec2TypeName (Annotation) (Name) (Integer) (Integer)+              | ArrayTypeName (Annotation) (TypeName)+              | SetOfTypeName (Annotation) (TypeName)+              deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_TypeName :: TypeName ->+                T_TypeName+_sem_TypeName (SimpleTypeName _ann _tn) =+    (_sem_TypeName_SimpleTypeName (_sem_Annotation _ann) (_sem_Name _tn))+_sem_TypeName (PrecTypeName _ann _tn _prec) =+    (_sem_TypeName_PrecTypeName (_sem_Annotation _ann) (_sem_Name _tn) _prec)+_sem_TypeName (Prec2TypeName _ann _tn _prec _prec1) =+    (_sem_TypeName_Prec2TypeName (_sem_Annotation _ann) (_sem_Name _tn) _prec _prec1)+_sem_TypeName (ArrayTypeName _ann _typ) =+    (_sem_TypeName_ArrayTypeName (_sem_Annotation _ann) (_sem_TypeName _typ))+_sem_TypeName (SetOfTypeName _ann _typ) =+    (_sem_TypeName_SetOfTypeName (_sem_Annotation _ann) (_sem_TypeName _typ))+-- semantic domain+type T_TypeName = Catalog ->+                  TypeCheckFlags ->+                  (Maybe TypeExtra) ->+                  ( TypeName,(Maybe TypeExtra),TypeName)+data Inh_TypeName = Inh_TypeName {_cat_Inh_TypeName :: Catalog,_flags_Inh_TypeName :: TypeCheckFlags,_imCast_Inh_TypeName :: (Maybe TypeExtra)}+data Syn_TypeName = Syn_TypeName {_annotatedTree_Syn_TypeName :: TypeName,_namedType_Syn_TypeName :: (Maybe TypeExtra),_originalTree_Syn_TypeName :: TypeName}+_wrap_TypeName :: T_TypeName ->+                 Inh_TypeName ->+                 Syn_TypeName+_wrap_TypeName sem (Inh_TypeName _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_TypeName _lhsOannotatedTree _lhsOnamedType _lhsOoriginalTree))+_sem_TypeName_SimpleTypeName :: T_Annotation ->+                               T_Name ->+                               T_TypeName+_sem_TypeName_SimpleTypeName ann_ tn_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOnamedType :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _tnOtpe :: (Either [TypeError] TypeExtra)+              _canType :: ([NameComponent] -> [NameComponent])+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TypeName+              _lhsOoriginalTree :: TypeName+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tnOcat :: Catalog+              _tnOflags :: TypeCheckFlags+              _tnOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tnIannotatedTree :: Name+              _tnIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)+              _lhsOnamedType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 28497 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)+              _annOtpe =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either Left (const $ Left []) _tpe+                   {-# LINE 28503 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 39, column 10)+              _tnOtpe =+                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   Left []+                   {-# LINE 28509 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)+              _canType =+                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   \x -> case x of+                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]+                      _ -> x+                   {-# LINE 28517 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 63, column 10)+              _tpe =+                  ({-# LINE 63 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   mkTypeExtraNN `liftM` catLookupType _lhsIcat (_canType     $ nameComponents _tnIoriginalTree)+                   {-# LINE 28523 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SimpleTypeName _annIannotatedTree _tnIannotatedTree+                   {-# LINE 28529 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SimpleTypeName _annIoriginalTree _tnIoriginalTree+                   {-# LINE 28535 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28541 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28547 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28553 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28559 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28565 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28571 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28577 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28583 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tnIannotatedTree,_tnIoriginalTree) =+                  tn_ _tnOcat _tnOflags _tnOimCast _tnOtpe+          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))+_sem_TypeName_PrecTypeName :: T_Annotation ->+                             T_Name ->+                             Integer ->+                             T_TypeName+_sem_TypeName_PrecTypeName ann_ tn_ prec_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOnamedType :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _tnOtpe :: (Either [TypeError] TypeExtra)+              _canType :: ([NameComponent] -> [NameComponent])+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TypeName+              _lhsOoriginalTree :: TypeName+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tnOcat :: Catalog+              _tnOflags :: TypeCheckFlags+              _tnOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tnIannotatedTree :: Name+              _tnIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)+              _lhsOnamedType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 28619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)+              _annOtpe =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either Left (const $ Left []) _tpe+                   {-# LINE 28625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 39, column 10)+              _tnOtpe =+                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   Left []+                   {-# LINE 28631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)+              _canType =+                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   \x -> case x of+                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]+                      _ -> x+                   {-# LINE 28639 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 77, column 9)+              _tpe =+                  ({-# LINE 77 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   ((\t -> t{tePrecision = Just $ fromIntegral prec_}) . mkTypeExtraNN)+                   `liftM` catLookupType _lhsIcat (nameComponents _tnIoriginalTree)+                   {-# LINE 28646 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PrecTypeName _annIannotatedTree _tnIannotatedTree prec_+                   {-# LINE 28652 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   PrecTypeName _annIoriginalTree _tnIoriginalTree prec_+                   {-# LINE 28658 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28664 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28670 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28676 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28682 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28688 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28694 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28700 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28706 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tnIannotatedTree,_tnIoriginalTree) =+                  tn_ _tnOcat _tnOflags _tnOimCast _tnOtpe+          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))+_sem_TypeName_Prec2TypeName :: T_Annotation ->+                              T_Name ->+                              Integer ->+                              Integer ->+                              T_TypeName+_sem_TypeName_Prec2TypeName ann_ tn_ prec_ prec1_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOnamedType :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _tnOtpe :: (Either [TypeError] TypeExtra)+              _canType :: ([NameComponent] -> [NameComponent])+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TypeName+              _lhsOoriginalTree :: TypeName+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _tnOcat :: Catalog+              _tnOflags :: TypeCheckFlags+              _tnOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _tnIannotatedTree :: Name+              _tnIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)+              _lhsOnamedType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 28743 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)+              _annOtpe =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either Left (const $ Left []) _tpe+                   {-# LINE 28749 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 39, column 10)+              _tnOtpe =+                  ({-# LINE 39 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   Left []+                   {-# LINE 28755 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)+              _canType =+                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   \x -> case x of+                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]+                      _ -> x+                   {-# LINE 28763 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 80, column 9)+              _tpe =+                  ({-# LINE 80 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   ((\t -> t{tePrecision = Just $ fromIntegral prec_,+                             teScale = Just $ fromIntegral prec1_})+                         . mkTypeExtraNN)+                   `liftM` catLookupType _lhsIcat (nameComponents _tnIoriginalTree)+                   {-# LINE 28772 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Prec2TypeName _annIannotatedTree _tnIannotatedTree prec_ prec1_+                   {-# LINE 28778 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   Prec2TypeName _annIoriginalTree _tnIoriginalTree prec_ prec1_+                   {-# LINE 28784 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28790 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28796 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28802 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28808 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28814 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28820 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28826 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tnOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28832 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _tnIannotatedTree,_tnIoriginalTree) =+                  tn_ _tnOcat _tnOflags _tnOimCast _tnOtpe+          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))+_sem_TypeName_ArrayTypeName :: T_Annotation ->+                              T_TypeName ->+                              T_TypeName+_sem_TypeName_ArrayTypeName ann_ typ_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOnamedType :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _canType :: ([NameComponent] -> [NameComponent])+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TypeName+              _lhsOoriginalTree :: TypeName+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)+              _lhsOnamedType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 28867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)+              _annOtpe =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either Left (const $ Left []) _tpe+                   {-# LINE 28873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)+              _canType =+                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   \x -> case x of+                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]+                      _ -> x+                   {-# LINE 28881 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 71, column 9)+              _tpe =+                  ({-# LINE 71 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   maybe (Left []) Right _typInamedType+                   >>= Right . (\t -> t{teType = ArrayType $ teType t})+                   {-# LINE 28888 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ArrayTypeName _annIannotatedTree _typIannotatedTree+                   {-# LINE 28894 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ArrayTypeName _annIoriginalTree _typIoriginalTree+                   {-# LINE 28900 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 28906 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 28912 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28918 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28924 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28930 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 28936 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 28942 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 28948 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))+_sem_TypeName_SetOfTypeName :: T_Annotation ->+                              T_TypeName ->+                              T_TypeName+_sem_TypeName_SetOfTypeName ann_ typ_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOnamedType :: (Maybe TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _canType :: ([NameComponent] -> [NameComponent])+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: TypeName+              _lhsOoriginalTree :: TypeName+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 36, column 10)+              _lhsOnamedType =+                  ({-# LINE 36 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either (const Nothing) Just _tpe+                   {-# LINE 28983 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 37, column 10)+              _annOtpe =+                  ({-# LINE 37 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   either Left (const $ Left []) _tpe+                   {-# LINE 28989 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 51, column 10)+              _canType =+                  ({-# LINE 51 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   \x -> case x of+                      [Nmc nc] -> [Nmc $ T.unpack $ canonicalizeTypeName (tcfDialect _lhsIflags) $ T.pack nc]+                      _ -> x+                   {-# LINE 28997 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag"(line 74, column 9)+              _tpe =+                  ({-# LINE 74 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Misc.ag" #-}+                   maybe (Left []) Right _typInamedType+                   >>= Right . (\t -> t{teType = Pseudo $ SetOfType $ teType t})+                   {-# LINE 29004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetOfTypeName _annIannotatedTree _typIannotatedTree+                   {-# LINE 29010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   SetOfTypeName _annIoriginalTree _typIoriginalTree+                   {-# LINE 29016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+          in  ( _lhsOannotatedTree,_lhsOnamedType,_lhsOoriginalTree)))+-- TypeNameList ------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : TypeNameList +         originalTree         : TypeNameList +   alternatives:+      alternative Cons:+         child hd             : TypeName +         child tl             : TypeNameList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type TypeNameList = [TypeName]+-- cata+_sem_TypeNameList :: TypeNameList ->+                    T_TypeNameList+_sem_TypeNameList list =+    (Prelude.foldr _sem_TypeNameList_Cons _sem_TypeNameList_Nil (Prelude.map _sem_TypeName list))+-- semantic domain+type T_TypeNameList = Catalog ->+                      TypeCheckFlags ->+                      (Maybe TypeExtra) ->+                      ( TypeNameList,TypeNameList)+data Inh_TypeNameList = Inh_TypeNameList {_cat_Inh_TypeNameList :: Catalog,_flags_Inh_TypeNameList :: TypeCheckFlags,_imCast_Inh_TypeNameList :: (Maybe TypeExtra)}+data Syn_TypeNameList = Syn_TypeNameList {_annotatedTree_Syn_TypeNameList :: TypeNameList,_originalTree_Syn_TypeNameList :: TypeNameList}+_wrap_TypeNameList :: T_TypeNameList ->+                     Inh_TypeNameList ->+                     Syn_TypeNameList+_wrap_TypeNameList sem (Inh_TypeNameList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_TypeNameList _lhsOannotatedTree _lhsOoriginalTree))+_sem_TypeNameList_Cons :: T_TypeName ->+                         T_TypeNameList ->+                         T_TypeNameList+_sem_TypeNameList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: TypeNameList+              _lhsOoriginalTree :: TypeNameList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: TypeName+              _hdInamedType :: (Maybe TypeExtra)+              _hdIoriginalTree :: TypeName+              _tlIannotatedTree :: TypeNameList+              _tlIoriginalTree :: TypeNameList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 29136 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 29142 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29148 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29154 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29160 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29166 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29172 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29178 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29184 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29190 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdInamedType,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_TypeNameList_Nil :: T_TypeNameList+_sem_TypeNameList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: TypeNameList+              _lhsOoriginalTree :: TypeNameList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 29208 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 29214 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29220 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29226 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- VarDef ------------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : VarDef +         originalTree         : VarDef +   alternatives:+      alternative VarDef:+         child ann            : Annotation +         child name           : {NameComponent}+         child typ            : TypeName +         child value          : {Maybe ScalarExpr}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative ParamAlias:+         child ann            : Annotation +         child name           : {NameComponent}+         child i              : {Integer}+         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative VarAlias:+         child ann            : Annotation +         child name           : {NameComponent}+         child aliased        : Name +         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+data VarDef = VarDef (Annotation) (NameComponent) (TypeName) ((Maybe ScalarExpr))+            | ParamAlias (Annotation) (NameComponent) (Integer)+            | VarAlias (Annotation) (NameComponent) (Name)+            deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_VarDef :: VarDef ->+              T_VarDef+_sem_VarDef (VarDef _ann _name _typ _value) =+    (_sem_VarDef_VarDef (_sem_Annotation _ann) _name (_sem_TypeName _typ) _value)+_sem_VarDef (ParamAlias _ann _name _i) =+    (_sem_VarDef_ParamAlias (_sem_Annotation _ann) _name _i)+_sem_VarDef (VarAlias _ann _name _aliased) =+    (_sem_VarDef_VarAlias (_sem_Annotation _ann) _name (_sem_Name _aliased))+-- semantic domain+type T_VarDef = Catalog ->+                TypeCheckFlags ->+                (Maybe TypeExtra) ->+                ( VarDef,VarDef)+data Inh_VarDef = Inh_VarDef {_cat_Inh_VarDef :: Catalog,_flags_Inh_VarDef :: TypeCheckFlags,_imCast_Inh_VarDef :: (Maybe TypeExtra)}+data Syn_VarDef = Syn_VarDef {_annotatedTree_Syn_VarDef :: VarDef,_originalTree_Syn_VarDef :: VarDef}+_wrap_VarDef :: T_VarDef ->+               Inh_VarDef ->+               Syn_VarDef+_wrap_VarDef sem (Inh_VarDef _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_VarDef _lhsOannotatedTree _lhsOoriginalTree))+_sem_VarDef_VarDef :: T_Annotation ->+                     NameComponent ->+                     T_TypeName ->+                     (Maybe ScalarExpr) ->+                     T_VarDef+_sem_VarDef_VarDef ann_ name_ typ_ value_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: VarDef+              _lhsOoriginalTree :: VarDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _typOcat :: Catalog+              _typOflags :: TypeCheckFlags+              _typOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _typIannotatedTree :: TypeName+              _typInamedType :: (Maybe TypeExtra)+              _typIoriginalTree :: TypeName+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 236, column 21)+              _annOtpe =+                  ({-# LINE 236 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 29316 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   VarDef _annIannotatedTree name_ _typIannotatedTree value_+                   {-# LINE 29322 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   VarDef _annIoriginalTree name_ _typIoriginalTree value_+                   {-# LINE 29328 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29334 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29340 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29346 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29352 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29358 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29364 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29370 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _typOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29376 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _typIannotatedTree,_typInamedType,_typIoriginalTree) =+                  typ_ _typOcat _typOflags _typOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_VarDef_ParamAlias :: T_Annotation ->+                         NameComponent ->+                         Integer ->+                         T_VarDef+_sem_VarDef_ParamAlias ann_ name_ i_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: VarDef+              _lhsOoriginalTree :: VarDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 233, column 25)+              _annOtpe =+                  ({-# LINE 233 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 29403 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ParamAlias _annIannotatedTree name_ i_+                   {-# LINE 29409 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   ParamAlias _annIoriginalTree name_ i_+                   {-# LINE 29415 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29421 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29427 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29433 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29439 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29445 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_VarDef_VarAlias :: T_Annotation ->+                       NameComponent ->+                       T_Name ->+                       T_VarDef+_sem_VarDef_VarAlias ann_ name_ aliased_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _aliasedOtpe :: (Either [TypeError] TypeExtra)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _lhsOannotatedTree :: VarDef+              _lhsOoriginalTree :: VarDef+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _aliasedOcat :: Catalog+              _aliasedOflags :: TypeCheckFlags+              _aliasedOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _aliasedIannotatedTree :: Name+              _aliasedIoriginalTree :: Name+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 234, column 23)+              _aliasedOtpe =+                  ({-# LINE 234 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 29476 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag"(line 235, column 23)+              _annOtpe =+                  ({-# LINE 235 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/Boilerplate.ag" #-}+                   Left []+                   {-# LINE 29482 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   VarAlias _annIannotatedTree name_ _aliasedIannotatedTree+                   {-# LINE 29488 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   VarAlias _annIoriginalTree name_ _aliasedIoriginalTree+                   {-# LINE 29494 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29500 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29506 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29512 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29518 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29524 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _aliasedOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29530 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _aliasedOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29536 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _aliasedOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29542 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _aliasedIannotatedTree,_aliasedIoriginalTree) =+                  aliased_ _aliasedOcat _aliasedOflags _aliasedOimCast _aliasedOtpe+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- VarDefList --------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : VarDefList +         originalTree         : VarDefList +   alternatives:+      alternative Cons:+         child hd             : VarDef +         child tl             : VarDefList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type VarDefList = [VarDef]+-- cata+_sem_VarDefList :: VarDefList ->+                  T_VarDefList+_sem_VarDefList list =+    (Prelude.foldr _sem_VarDefList_Cons _sem_VarDefList_Nil (Prelude.map _sem_VarDef list))+-- semantic domain+type T_VarDefList = Catalog ->+                    TypeCheckFlags ->+                    (Maybe TypeExtra) ->+                    ( VarDefList,VarDefList)+data Inh_VarDefList = Inh_VarDefList {_cat_Inh_VarDefList :: Catalog,_flags_Inh_VarDefList :: TypeCheckFlags,_imCast_Inh_VarDefList :: (Maybe TypeExtra)}+data Syn_VarDefList = Syn_VarDefList {_annotatedTree_Syn_VarDefList :: VarDefList,_originalTree_Syn_VarDefList :: VarDefList}+_wrap_VarDefList :: T_VarDefList ->+                   Inh_VarDefList ->+                   Syn_VarDefList+_wrap_VarDefList sem (Inh_VarDefList _lhsIcat _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOoriginalTree) = sem _lhsIcat _lhsIflags _lhsIimCast+     in  (Syn_VarDefList _lhsOannotatedTree _lhsOoriginalTree))+_sem_VarDefList_Cons :: T_VarDef ->+                       T_VarDefList ->+                       T_VarDefList+_sem_VarDefList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: VarDefList+              _lhsOoriginalTree :: VarDefList+              _hdOcat :: Catalog+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: VarDef+              _hdIoriginalTree :: VarDef+              _tlIannotatedTree :: VarDefList+              _tlIoriginalTree :: VarDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 29613 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 29619 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29625 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29631 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29637 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29643 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29649 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29655 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29661 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29667 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIoriginalTree) =+                  hd_ _hdOcat _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+_sem_VarDefList_Nil :: T_VarDefList+_sem_VarDefList_Nil =+    (\ _lhsIcat+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOannotatedTree :: VarDefList+              _lhsOoriginalTree :: VarDefList+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 29685 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 29691 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 29697 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29703 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+          in  ( _lhsOannotatedTree,_lhsOoriginalTree)))+-- WithQuery ---------------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         catExtIncomp         : Either [TypeError] Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : WithQuery +         colAliases           : Maybe [NameComponent]+         name                 : Text+         originalTree         : WithQuery +         upType               : Maybe [(Text,TypeExtra)]+   alternatives:+      alternative WithQuery:+         child ann            : Annotation +         child name           : {NameComponent}+         child colAliases     : {Maybe [NameComponent]}+         child ex             : QueryExpr +         visit 0:+            local tpee        : {Either [TypeError] [(Text,TypeExtra)]}+            local tpe         : {Either [TypeError] TypeExtra}+            local annotatedTree : _+            local originalTree : _+-}+data WithQuery = WithQuery (Annotation) (NameComponent) ((Maybe [NameComponent])) (QueryExpr)+               deriving ( Data,Eq,Show,Typeable)+-- cata+_sem_WithQuery :: WithQuery ->+                 T_WithQuery+_sem_WithQuery (WithQuery _ann _name _colAliases _ex) =+    (_sem_WithQuery_WithQuery (_sem_Annotation _ann) _name _colAliases (_sem_QueryExpr _ex))+-- semantic domain+type T_WithQuery = Catalog ->+                   (Either [TypeError] Catalog) ->+                   TypeCheckFlags ->+                   (Maybe TypeExtra) ->+                   ( WithQuery,(Maybe [NameComponent]),Text,WithQuery,(Maybe [(Text,TypeExtra)]))+data Inh_WithQuery = Inh_WithQuery {_cat_Inh_WithQuery :: Catalog,_catExtIncomp_Inh_WithQuery :: (Either [TypeError] Catalog),_flags_Inh_WithQuery :: TypeCheckFlags,_imCast_Inh_WithQuery :: (Maybe TypeExtra)}+data Syn_WithQuery = Syn_WithQuery {_annotatedTree_Syn_WithQuery :: WithQuery,_colAliases_Syn_WithQuery :: (Maybe [NameComponent]),_name_Syn_WithQuery :: Text,_originalTree_Syn_WithQuery :: WithQuery,_upType_Syn_WithQuery :: (Maybe [(Text,TypeExtra)])}+_wrap_WithQuery :: T_WithQuery ->+                  Inh_WithQuery ->+                  Syn_WithQuery+_wrap_WithQuery sem (Inh_WithQuery _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOcolAliases,_lhsOname,_lhsOoriginalTree,_lhsOupType) = sem _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast+     in  (Syn_WithQuery _lhsOannotatedTree _lhsOcolAliases _lhsOname _lhsOoriginalTree _lhsOupType))+_sem_WithQuery_WithQuery :: T_Annotation ->+                           NameComponent ->+                           (Maybe [NameComponent]) ->+                           T_QueryExpr ->+                           T_WithQuery+_sem_WithQuery_WithQuery ann_ name_ colAliases_ ex_ =+    (\ _lhsIcat+       _lhsIcatExtIncomp+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOname :: Text+              _lhsOannotatedTree :: WithQuery+              _lhsOcolAliases :: (Maybe [NameComponent])+              _tpee :: (Either [TypeError] [(Text,TypeExtra)])+              _tpe :: (Either [TypeError] TypeExtra)+              _lhsOupType :: (Maybe [(Text,TypeExtra)])+              _exOouterDownEnv :: (Maybe Environment)+              _annOtpe :: (Either [TypeError] TypeExtra)+              _exOexpectedType :: (Maybe [TypeExtra])+              _exOassignmentCastContext :: Bool+              _lhsOoriginalTree :: WithQuery+              _annOcat :: Catalog+              _annOflags :: TypeCheckFlags+              _annOimCast :: (Maybe TypeExtra)+              _exOcat :: Catalog+              _exOflags :: TypeCheckFlags+              _exOimCast :: (Maybe TypeExtra)+              _annIannotatedTree :: Annotation+              _annIoriginalTree :: Annotation+              _exIannotatedTree :: QueryExpr+              _exIoriginalTree :: QueryExpr+              _exIupType :: (Maybe [(Text,TypeExtra)])+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 56, column 9)+              _lhsOname =+                  ({-# LINE 56 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   ncStrT name_+                   {-# LINE 29789 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 57, column 9)+              _lhsOannotatedTree =+                  ({-# LINE 57 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   WithQuery _annIannotatedTree name_ colAliases_ _exIannotatedTree+                   {-# LINE 29795 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 58, column 9)+              _lhsOcolAliases =+                  ({-# LINE 58 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   colAliases_+                   {-# LINE 29801 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 62, column 9)+              _tpee =+                  ({-# LINE 62 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   maybe (Left []) Right _exIupType+                   {-# LINE 29807 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 64, column 9)+              _tpe =+                  ({-# LINE 64 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM (mkTypeExtra . CompositeType) _tpee+                   {-# LINE 29813 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 66, column 9)+              _lhsOupType =+                  ({-# LINE 66 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   either (const Nothing) Just _tpee+                   {-# LINE 29819 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 95, column 15)+              _exOouterDownEnv =+                  ({-# LINE 95 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Nothing+                   {-# LINE 29825 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 101, column 9)+              _annOtpe =+                  ({-# LINE 101 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   Left []+                   {-# LINE 29831 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 102, column 9)+              _exOexpectedType =+                  ({-# LINE 102 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   liftM (map snd) _exIupType+                   {-# LINE 29837 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag"(line 846, column 27)+              _exOassignmentCastContext =+                  ({-# LINE 846 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/ScalarExprs.ag" #-}+                   False+                   {-# LINE 29843 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WithQuery _annIannotatedTree name_ colAliases_ _exIannotatedTree+                   {-# LINE 29849 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   WithQuery _annIoriginalTree name_ colAliases_ _exIoriginalTree+                   {-# LINE 29855 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 29861 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29867 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29873 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _annOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29879 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 29885 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 29891 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _exOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 29897 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _annIannotatedTree,_annIoriginalTree) =+                  ann_ _annOcat _annOflags _annOimCast _annOtpe+              ( _exIannotatedTree,_exIoriginalTree,_exIupType) =+                  ex_ _exOassignmentCastContext _exOcat _exOexpectedType _exOflags _exOimCast _exOouterDownEnv+          in  ( _lhsOannotatedTree,_lhsOcolAliases,_lhsOname,_lhsOoriginalTree,_lhsOupType)))+-- WithQueryList -----------------------------------------------+{-+   visit 0:+      inherited attributes:+         cat                  : Catalog+         catExtIncomp         : Either [TypeError] Catalog+         flags                : TypeCheckFlags+         imCast               : Maybe TypeExtra+      synthesized attributes:+         annotatedTree        : WithQueryList +         catExtComp           : Either [TypeError] Catalog+         originalTree         : WithQueryList +   alternatives:+      alternative Cons:+         child hd             : WithQuery +         child tl             : WithQueryList +         visit 0:+            local annotatedTree : _+            local originalTree : _+      alternative Nil:+         visit 0:+            local annotatedTree : _+            local originalTree : _+-}+type WithQueryList = [WithQuery]+-- cata+_sem_WithQueryList :: WithQueryList ->+                     T_WithQueryList+_sem_WithQueryList list =+    (Prelude.foldr _sem_WithQueryList_Cons _sem_WithQueryList_Nil (Prelude.map _sem_WithQuery list))+-- semantic domain+type T_WithQueryList = Catalog ->+                       (Either [TypeError] Catalog) ->+                       TypeCheckFlags ->+                       (Maybe TypeExtra) ->+                       ( WithQueryList,(Either [TypeError] Catalog),WithQueryList)+data Inh_WithQueryList = Inh_WithQueryList {_cat_Inh_WithQueryList :: Catalog,_catExtIncomp_Inh_WithQueryList :: (Either [TypeError] Catalog),_flags_Inh_WithQueryList :: TypeCheckFlags,_imCast_Inh_WithQueryList :: (Maybe TypeExtra)}+data Syn_WithQueryList = Syn_WithQueryList {_annotatedTree_Syn_WithQueryList :: WithQueryList,_catExtComp_Syn_WithQueryList :: (Either [TypeError] Catalog),_originalTree_Syn_WithQueryList :: WithQueryList}+_wrap_WithQueryList :: T_WithQueryList ->+                      Inh_WithQueryList ->+                      Syn_WithQueryList+_wrap_WithQueryList sem (Inh_WithQueryList _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast) =+    (let ( _lhsOannotatedTree,_lhsOcatExtComp,_lhsOoriginalTree) = sem _lhsIcat _lhsIcatExtIncomp _lhsIflags _lhsIimCast+     in  (Syn_WithQueryList _lhsOannotatedTree _lhsOcatExtComp _lhsOoriginalTree))+_sem_WithQueryList_Cons :: T_WithQuery ->+                          T_WithQueryList ->+                          T_WithQueryList+_sem_WithQueryList_Cons hd_ tl_ =+    (\ _lhsIcat+       _lhsIcatExtIncomp+       _lhsIflags+       _lhsIimCast ->+         (let _tlOcatExtIncomp :: (Either [TypeError] Catalog)+              _hdOcat :: Catalog+              _lhsOannotatedTree :: WithQueryList+              _lhsOoriginalTree :: WithQueryList+              _lhsOcatExtComp :: (Either [TypeError] Catalog)+              _hdOcatExtIncomp :: (Either [TypeError] Catalog)+              _hdOflags :: TypeCheckFlags+              _hdOimCast :: (Maybe TypeExtra)+              _tlOcat :: Catalog+              _tlOflags :: TypeCheckFlags+              _tlOimCast :: (Maybe TypeExtra)+              _hdIannotatedTree :: WithQuery+              _hdIcolAliases :: (Maybe [NameComponent])+              _hdIname :: Text+              _hdIoriginalTree :: WithQuery+              _hdIupType :: (Maybe [(Text,TypeExtra)])+              _tlIannotatedTree :: WithQueryList+              _tlIcatExtComp :: (Either [TypeError] Catalog)+              _tlIoriginalTree :: WithQueryList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 34, column 9)+              _tlOcatExtIncomp =+                  ({-# LINE 34 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   do+                   let getWithEx (WithQuery _ _ _ ex) = ex+                   upType' <- maybe (Left . anErrs . ann . getWithEx $ _hdIannotatedTree) Right+                     _hdIupType+                   colTyPairs <- mapM (secondM typeToCatName) upType'+                   colTyPairs' <- case _hdIcolAliases of+                     Just alsNms -> do+                       unless (length alsNms == length colTyPairs) $+                         Left [BadCatalogUpdate "number of aliases differs from number of expressions in the select"]+                       return $ zip (map ncStrT alsNms) $ map snd colTyPairs+                     Nothing -> return colTyPairs+                   updateCatalog [CatCreateTable ("public", _hdIname ) colTyPairs'] =<< _lhsIcatExtIncomp+                   {-# LINE 29990 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 47, column 9)+              _hdOcat =+                  ({-# LINE 47 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   case _lhsIcatExtIncomp of+                     Right catExtIncomp -> catExtIncomp+                     Left _ -> _lhsIcat+                   {-# LINE 29998 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIannotatedTree _tlIannotatedTree+                   {-# LINE 30004 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   (:) _hdIoriginalTree _tlIoriginalTree+                   {-# LINE 30010 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 30016 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 30022 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (up)+              _lhsOcatExtComp =+                  ({-# LINE 29 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _tlIcatExtComp+                   {-# LINE 30028 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOcatExtIncomp =+                  ({-# LINE 24 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIcatExtIncomp+                   {-# LINE 30034 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 30040 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _hdOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 30046 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOcat =+                  ({-# LINE 116 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIcat+                   {-# LINE 30052 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOflags =+                  ({-# LINE 117 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIflags+                   {-# LINE 30058 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- copy rule (down)+              _tlOimCast =+                  ({-# LINE 129 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _lhsIimCast+                   {-# LINE 30064 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              ( _hdIannotatedTree,_hdIcolAliases,_hdIname,_hdIoriginalTree,_hdIupType) =+                  hd_ _hdOcat _hdOcatExtIncomp _hdOflags _hdOimCast+              ( _tlIannotatedTree,_tlIcatExtComp,_tlIoriginalTree) =+                  tl_ _tlOcat _tlOcatExtIncomp _tlOflags _tlOimCast+          in  ( _lhsOannotatedTree,_lhsOcatExtComp,_lhsOoriginalTree)))+_sem_WithQueryList_Nil :: T_WithQueryList+_sem_WithQueryList_Nil =+    (\ _lhsIcat+       _lhsIcatExtIncomp+       _lhsIflags+       _lhsIimCast ->+         (let _lhsOcatExtComp :: (Either [TypeError] Catalog)+              _lhsOannotatedTree :: WithQueryList+              _lhsOoriginalTree :: WithQueryList+              -- "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag"(line 52, column 9)+              _lhsOcatExtComp =+                  ({-# LINE 52 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/QueryExprs/QueryExprs.ag" #-}+                   _lhsIcatExtIncomp+                   {-# LINE 30084 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _annotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 30090 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _originalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   []+                   {-# LINE 30096 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOannotatedTree =+                  ({-# LINE 118 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _annotatedTree+                   {-# LINE 30102 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}+                   )+              -- self rule+              _lhsOoriginalTree =+                  ({-# LINE 119 "hssqlppp/src/Database/HsSqlPpp/Internals/TypeChecking/TypeChecking.ag" #-}+                   _originalTree+                   {-# LINE 30108 "hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.hs" #-}                    )           in  ( _lhsOannotatedTree,_lhsOcatExtComp,_lhsOoriginalTree)))
src/Database/HsSqlPpp/Internals/Catalog/CatalogInternal.lhs view
@@ -152,6 +152,7 @@ paths are implemented.  > getCatName2 :: [NameComponent] -> (CatName,CatName)+> -- todo: don't use error here > getCatName2 [] = error "empty name component in catalog code" > getCatName2 [a] = ("public",ncStrT a) > getCatName2 [a,b] = (ncStrT a, ncStrT b)
src/Database/HsSqlPpp/Internals/ParseInternal.lhs view
@@ -642,11 +642,11 @@ >   tname <- name >   choice [ >      CreateTableAs p tname rep <$> (keyword "as" *> pQueryExpr)->                             >     ,do >      (atts,cons) <- readAttsAndCons >      pdata <- readPartition->      return $ CreateTable p tname atts cons pdata rep+>      ts <- option [] tableOptions+>      return $ CreateTable p tname atts cons pdata rep ts >     ] >   where >     --parse the unordered list of attribute defs or constraints, for@@ -667,8 +667,8 @@ >                <$> pos >                <*> nameComponent >                <*> typeName->                <*> tryOptionMaybe (keyword "default" *> expr) >                <*> many rowConstraint+>                <*> option [] tableOptions >   where >     rowConstraint = do >        p <- pos@@ -677,6 +677,7 @@ >           RowUniqueConstraint p cn <$ keyword "unique" >          ,RowPrimaryKeyConstraint p cn <$ keyword "primary" <* keyword "key" >          ,RowCheckConstraint p cn <$> (keyword "check" *> parens expr)+>          ,DefaultConstraint p cn <$> (keyword "default" *> expr) >          ,NullConstraint p cn <$ keyword "null" >          ,NotNullConstraint p cn <$ (keyword "not" <* keyword "null") >          ,IdentityConstraint p cn <$> (keyword "identity" *>@@ -690,6 +691,20 @@ >          ] > +> tableOptions :: SParser [TableOption]+> tableOptions =+>     keywords ["with","options"]+>     *> parens (many1 tableOption)+>   where+>     tableOption = do+>         onm <- many1 idString+>         choice [symbol "=" *> choice+>                 [TableOptionStringVal onm <$> stringN+>                 ,TableOptionNameVal onm <$> many1 name+>                 ,TableOptionNumberVal onm <$> numString]+>                ,pure $ TableOptionKeywords onm+>                ]+ > tablePartition :: SParser TablePartitionDef > tablePartition = do >         p <- pos@@ -980,13 +995,13 @@ > alterSchema :: SParser Statement > alterSchema = AlterSchema >                <$> pos <* keyword "schema"->                <*> nameComponent+>                <*> name >                <*> operation >             where >                operation = choice [try changeOwner, renameSchema] >                renameSchema = AlterSchemaName >                              <$> (pos <* keyword "rename" <* keyword "to")->                              <*> nameComponent+>                              <*> name >                changeOwner  = AlterSchemaOwner >                              <$> (pos <* keyword "owner" <* keyword "to") >                              <*> name@@ -1009,7 +1024,7 @@ > createSchema :: SParser Statement > createSchema = CreateSchema >                <$> pos <* keyword "schema"->                <*> nameComponent+>                <*> name >                <*> tryOptionMaybe (keyword "authorization" *> name)  > dropSomething :: SParser Statement@@ -2479,6 +2494,10 @@ >                       where >                         lcase = map toLower +> keywords :: [Text] -> SParser ()+> keywords [] = pure ()+> keywords (x:xs) = keyword x *> keywords xs+ > > idString :: SParser String > idString = mytoken (\tok -> case tok of@@ -2547,6 +2566,7 @@  > extrStr :: ScalarExpr -> String > extrStr (StringLit _ s) = s+> -- todo: use fail or something? > extrStr x = >   error $ "internal error: extrStr not supported for this type " ++ show x 
src/Database/HsSqlPpp/Internals/PrettyInternal.lhs view
@@ -16,6 +16,7 @@ >     ) >     where >+> import Prelude hiding ((<>)) > import Text.PrettyPrint > import Data.Maybe >@@ -149,7 +150,7 @@ > > -- ddl >-> statement flg se ca (CreateTable ann tbl atts cns partition rep) =+> statement flg se ca (CreateTable ann tbl atts cns partition rep opts) = >     annot ca ann <+> >     text ("create " ++ (case rep of >                          Replace -> "or replace "@@ -160,6 +161,7 @@ >     $+$ case (diSyntaxFlavour $ ppDialect flg) of >          SqlServer -> empty >          _ -> (tablePartition partition)+>     $+$ tableOpts flg opts >     <> statementEnd se > > statement flg se ca (AlterTable ann tnm op) =@@ -312,7 +314,7 @@ >     text "create database" <+> name nm <> statementEnd se  > statement _flg se ca (CreateSchema ann nm musr) =->     annot ca ann <+> text "create schema" <+> nmc nm +>     annot ca ann <+> text "create schema" <+> name nm  >     <+> case musr of >           Nothing -> empty >           Just u -> text "authorization" <+> name u@@ -327,11 +329,11 @@  > statement _flg se ca (AlterSchema ann snm op) = >     annot ca ann <+>->     text "alter schema" <+> nmc snm+>     text "alter schema" <+> name snm >     <+> alterOperation op <> statementEnd se >     where >       alterOperation (AlterSchemaName _ nsnm) = ->           text "rename to" <+> nmc nsnm+>           text "rename to" <+> name nsnm >       alterOperation (AlterSchemaOwner _ nunm) =  >           text "owner to" <+> name nunm @@ -497,6 +499,7 @@ >     annot ca ann <+> >     text "perform" <+> scalExpr flg f <> statementEnd se > statement _ _ _ (Perform _ x) =+>    -- todo: don't use error >    error $ "internal error: statement not supported for " ++ show x > > statement _flg se ca (CopyFrom ann tb cols src opts) =@@ -723,6 +726,7 @@ >   parens (queryExpr flg True True Nothing sub) > tref flg (FunTref _ f@(App {})) = scalExpr flg f > tref _flg (FunTref _ x) =+>       -- todo: don't use error >       error $ "internal error: node not supported in function tref: " >             ++ show x > tref flg (TableRefParens _ t) = parens (tref flg t)@@ -870,11 +874,13 @@ >            -- _ -> "unknown type " ++ (show x)  > attrDef :: PrettyFlags -> AttributeDef -> Doc-> attrDef flg (AttributeDef _ n t def cons) =+> attrDef flg (AttributeDef _ n t cons opts) = >   nmc n <+> typeName t->   <+> maybePrint (\e -> text "default" <+> scalExpr flg e) def >   <+> hsep (map cCons cons)+>   <+> tableOpts flg opts >   where+>     cCons (DefaultConstraint _ cn e) =+>       mname cn <+> text "default" <+> scalExpr flg e >     cCons (NullConstraint _ cn) = >       mname cn <+> text "null" >     cCons (NotNullConstraint _ cn) =@@ -890,8 +896,20 @@ >       <+> maybePrint (parens . nmc) att >       <+> text "on delete" <+> cascade ondel >       <+> text "on update" <+> cascade onupd->     cCons (IdentityConstraint _ cn si) = +>     cCons (IdentityConstraint _ cn si) = >       mname cn <+> text "identity" <> text (maybe "" show si)++> tableOpts :: PrettyFlags -> [TableOption] -> Doc+> tableOpts _ [] = empty+> tableOpts flg as = text "with" <+> text "options"+>                    <+> parens (nest 4 $ sep $ map to as)+>   where+>     to (TableOptionKeywords ks) = hsep (map text ks)+>     to (TableOptionStringVal nm v) = tov nm [scalExpr flg (StringLit emptyAnnotation v)]+>     to (TableOptionNameVal nm v) = tov nm $ map name v+>     to (TableOptionNumberVal nm v) = tov nm [text v]+>     tov nm x = hsep (map text nm ++ [text "="] ++ x)+ > -- plpgsql > > nestedStatements :: PrettyFlags -> (Annotation -> String) -> [Statement] -> Doc@@ -954,7 +972,9 @@ > scalExpr _ (AntiScalarExpr s) = text $ "$(" ++ s ++ ")" > scalExpr _ (Star _) = text "*" > scalExpr _ (QStar _ i) = nmc i <> text ".*"-> scalExpr _ (Identifier _ (AntiName _)) = error "Antiname component"+> scalExpr _ (Identifier _ (AntiName _)) =+>     -- todo: don't use error+>     error "Antiname component"  > scalExpr _flg (Identifier _a (Name _ is)) = >   hcat (punctuate (text ".") (map nmc is))
src/Database/HsSqlPpp/Syntax.lhs view
@@ -6,7 +6,7 @@ >      the seemingly pointless type synonyms below, they are an >      artefact of using UUAGC. You can see labels for the fields by >      looking at the ag source here:->      <https://github.com/JakeWheat/hssqlppp/blob/master/src/Database/HsSqlPpp/Internals/AstInternal.ag>+>      <https://raw.githubusercontent.com/JakeWheat/hssqlppp/master/hssqlppp/src/Database/HsSqlPpp/Internals/AstInternal.ag> >      -} > > module Database.HsSqlPpp.Syntax@@ -52,6 +52,7 @@ >     ,SetClause(..) >      -- ** ddl components >     ,AttributeDef(..)+>     ,TableOption(..) >     ,RowConstraint(..) >     ,Constraint(..) >     ,TablePartitionDef(..)
tests/Database/HsSqlPpp/Tests/Parsing/CreateTable.lhs view
@@ -1,34 +1,37 @@  > {-# LANGUAGE OverloadedStrings #-}-> module Database.HsSqlPpp.Tests.Parsing.CreateTable (createTable) where+> module Database.HsSqlPpp.Tests.Parsing.CreateTable (createTableTests) where > > import Database.HsSqlPpp.Syntax  > import Database.HsSqlPpp.Tests.Parsing.Utils > import Database.HsSqlPpp.Tests.TestTypes -> createTable:: Item-> createTable =+> createTableTests :: Item+> createTableTests = >   Group "create table" [ >      Group "simple tables" [ >       s "create table test (\n\ >         \  fielda text,\n\ >         \  fieldb int\n\ >         \);"->       [CreateTable ea->        (name "test")->        [att "fielda" "text"->        ,att "fieldb" "int"->        ]->        []->        Nothing->        NoReplace]+>       [(createTable "test")+>         [att "fielda" "text"+>         ,att "fieldb" "int"]+>       ] >      ,s "create table tbl (\n\ >         \  fld boolean default false);"->       [CreateTable ea (name "tbl")+>       [createTable "tbl" >        [AttributeDef ea (Nmc "fld") (st "boolean")->                          (Just lFalse) []][] Nothing NoReplace]+>                          [DefaultConstraint ea "" lFalse] []]] >+>      ,s "create table tbl (\n\+>         \  fld boolean not null default false);"+>       [createTable "tbl"+>        [AttributeDef ea (Nmc "fld") (st "boolean")+>                          [NotNullConstraint ea "",+>                           DefaultConstraint ea "" lFalse] []]]+> >      ,s "create table tbl as select 1;" >       [CreateTableAs ea (name "tbl") NoReplace >        (makeSelect@@ -36,24 +39,23 @@ > >      ,s "create table tbl  (\n\ >         \  fld int not null identity(1,1));"->       [CreateTable ea (name "tbl")+>       [createTable "tbl" >        [AttributeDef ea (Nmc "fld") (st "int")->                          Nothing [NotNullConstraint ea "", IdentityConstraint ea "" (Just(1,1))]][] Nothing->                          NoReplace]->+>                          [NotNullConstraint ea "",+>                           IdentityConstraint ea "" (Just(1,1))] []]] >      ,s "create table tbl  (\n\ >         \  fld int not null identity(-1,-1));"->       [CreateTable ea (name "tbl")+>       [createTable "tbl" >        [AttributeDef ea (Nmc "fld") (st "int")->                          Nothing [NotNullConstraint ea "", IdentityConstraint ea "" (Just(-1,-1))]][] Nothing->                          NoReplace]+>                          [NotNullConstraint ea "",+>                           IdentityConstraint ea "" (Just(-1,-1))] []]] > >      ,s "create table tbl  (\n\ >         \  fld int not null identity);"->       [CreateTable ea (name "tbl")+>       [createTable "tbl" >        [AttributeDef ea (Nmc "fld") (st "int")->                          Nothing [NotNullConstraint ea "", IdentityConstraint ea "" Nothing]][] Nothing->                          NoReplace]+>                          [NotNullConstraint ea "",+>                           IdentityConstraint ea "" Nothing] []]] > >      ,s "alter table a rename to b;" >       [AlterTable ea (name "a") $ RenameTable ea (name "b")]@@ -96,15 +98,13 @@ >       s "create table t1 (\n\ >         \ a text null\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "a") (st "text")->                            Nothing [NullConstraint ea ""]]->          [] Nothing NoReplace]+>         [createTable "t1" [AttributeDef ea (Nmc "a") (st "text")+>                            [NullConstraint ea ""] []]] >      ,s "create table t1 (\n\ >         \ a text not null\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "a") (st "text")->                                     Nothing [NotNullConstraint ea ""]]->          [] Nothing NoReplace]+>         [createTable "t1" [AttributeDef ea (Nmc "a") (st "text")+>                                         [NotNullConstraint ea ""] []]] >      ] > >      ,Group "unique" [@@ -113,9 +113,10 @@ >         \ y int,\n\ >         \ unique (x,y)\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"->                                    ,att "y" "int"]->          [UniqueConstraint ea "" [Nmc "x",Nmc "y"]] Nothing NoReplace]+>         [createTable "t1" [att "x" "int"+>                           ,att "y" "int"]+>          `setTableCons`+>          [UniqueConstraint ea "" [Nmc "x",Nmc "y"]]]  test arbitrary ordering @@ -124,9 +125,10 @@ >         \ unique (x),\n\ >         \ y int\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"->                                    ,att "y" "int"]->          [UniqueConstraint ea "" [Nmc "x"]] Nothing NoReplace]+>         [createTable "t1" [att "x" "int"+>                           ,att "y" "int"]+>          `setTableCons`+>          [UniqueConstraint ea "" [Nmc "x"]]]   test partitioning parser@@ -139,10 +141,10 @@ >         \  (\n\ >         \   every 5 months\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"->                                     ,att "ts" "datetime"]->           []->          (Just (TablePartitionDef ea (Nmc "ts") 5 Month)) NoReplace]+>         [createTable "t1" [att "x" "int"+>                           ,att "ts" "datetime"]+>          `setTablePartition`+>          (Just (TablePartitionDef ea (Nmc "ts") 5 Month))]   unique row@@ -150,154 +152,154 @@ >      ,s "create table t1 (\n\ >         \ x int unique\n\ >         \);"->         [CreateTable ea (name "t1")->          [AttributeDef ea (Nmc "x") (st "int") Nothing->           [RowUniqueConstraint ea ""]][] Nothing NoReplace]+>         [createTable "t1"+>          [AttributeDef ea (Nmc "x") (st "int")+>           [RowUniqueConstraint ea ""] []]] > >      ,s "create table t1 (\n\ >         \ x int unique not null\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing->                                     [RowUniqueConstraint ea ""->                                     ,NotNullConstraint ea ""]][] Nothing NoReplace]+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int")+>                            [RowUniqueConstraint ea ""+>                            ,NotNullConstraint ea ""] []]]  quick sanity check  >      ,s "create table t1 (\n\ >         \ x int not null unique\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing->                                     [NotNullConstraint ea ""->                                     ,RowUniqueConstraint ea ""]][] Nothing NoReplace]+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int")+>                            [NotNullConstraint ea ""+>                            ,RowUniqueConstraint ea ""] []]] >      ] > >      ,Group "primary key" [ >       s "create table t1 (\n\ >         \ x int primary key\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing->                            [RowPrimaryKeyConstraint ea ""]][] Nothing NoReplace]+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int")+>                            [RowPrimaryKeyConstraint ea ""] []]] > >      ,s "create table t1 (\n\ >         \ x int,\n\ >         \ y int,\n\ >         \ primary key (x,y)\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"+>         [createTable "t1" [att "x" "int" >                           ,att "y" "int"]->          [PrimaryKeyConstraint ea "" [Nmc "x", Nmc "y"]] Nothing NoReplace]+>          `setTableCons`+>          [PrimaryKeyConstraint ea "" [Nmc "x", Nmc "y"]]] >      ] > >      ,Group "check" [ >       s "create table t (\n\ >         \f text check (f in('a', 'b'))\n\ >         \);"->         [CreateTable ea (name "t")->          [AttributeDef ea (Nmc "f") (st "text") Nothing+>         [createTable "t"+>          [AttributeDef ea (Nmc "f") (st "text") >           [RowCheckConstraint ea "" (InPredicate ea->                                   (ei "f") True->                                   (InList ea [stringQ "a", stringQ "b"]))]] [] Nothing NoReplace]+>                                      (ei "f") True+>                                      (InList ea [stringQ "a", stringQ "b"]))] []]] > >      ,s "create table t1 (\n\ >         \ x int,\n\ >         \ y int,\n\ >         \ check (x>y)\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"->                                    ,att "y" "int"]->          [CheckConstraint ea "" (binop ">" (ei "x") (ei "y"))] Nothing NoReplace]+>         [createTable "t1" [att "x" "int"+>                           ,att "y" "int"]+>          `setTableCons`+>          [CheckConstraint ea "" (binop ">" (ei "x") (ei "y"))]] >      ] > >      ,Group "misc" [ >       s "create table t (\n\ >         \f text not null unique check (f in('a', 'b'))\n\ >         \);"->         [CreateTable ea (name "t")->          [AttributeDef ea (Nmc "f") (st "text") Nothing+>         [createTable "t"+>          [AttributeDef ea (Nmc "f") (st "text") >           [NotNullConstraint ea "" >            ,RowUniqueConstraint ea "" >            ,RowCheckConstraint ea "" (InPredicate ea >                                    (ei "f") True >                                    (InList ea [stringQ "a"->                                               ,stringQ "b"]))]] [] Nothing NoReplace]+>                                               ,stringQ "b"]))] []]] >      ]  >      ,Group "references" [ >       s "create table t1 (\n\ >         \ x int references t2\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int") >                            [RowReferenceConstraint ea "" (name "t2") Nothing->                             Restrict Restrict]][] Nothing NoReplace]+>                             Restrict Restrict] []]] > >      ,s "create table t1 (\n\ >         \ x int references t2(y)\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int") >                            [RowReferenceConstraint ea "" (name "t2") (Just $ Nmc "y")->                             Restrict Restrict]][] Nothing NoReplace]+>                             Restrict Restrict] []]] >      ,s "create table t1 (\n\ >         \ x int,\n\ >         \ y int,\n\ >         \ foreign key (x,y) references t2\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"->                                    ,att "y" "int"]+>         [createTable "t1" [att "x" "int"+>                           ,att "y" "int"]+>          `setTableCons` >          [ReferenceConstraint ea "" [Nmc "x", Nmc "y"] (name "t2") []->           Restrict Restrict] Nothing NoReplace]+>           Restrict Restrict]] > >      ,s "create table t1 (\n\ >         \ x int,\n\ >         \ y int,\n\ >         \ foreign key (x,y) references t2(z,w)\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"+>         [createTable "t1" [att "x" "int" >                           ,att "y" "int"]+>          `setTableCons` >          [ReferenceConstraint ea "" [Nmc "x", Nmc "y"] (name "t2") [Nmc "z", Nmc "w"]->           Restrict Restrict] Nothing NoReplace]+>           Restrict Restrict]] > >      ,s "create table t1 (\n\ >         \ x int references t2 on delete cascade\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int") >                            [RowReferenceConstraint ea "" (name "t2") Nothing->                             Cascade Restrict]][] Nothing NoReplace]+>                             Cascade Restrict] []]] > >      ,s "create table t1 (\n\ >         \ x int references t2 on update cascade\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int") >                            [RowReferenceConstraint ea "" (name "t2") Nothing->                             Restrict Cascade]][] Nothing NoReplace]+>                             Restrict Cascade] []]] > >      ,s "create table t1 (\n\ >         \ x int references t2 on delete cascade on update cascade\n\ >         \);"->         [CreateTable ea (name "t1") [AttributeDef ea (Nmc "x") (st "int") Nothing->                                     [RowReferenceConstraint ea "" (name "t2") Nothing->                                      Cascade Cascade]][] Nothing NoReplace]+>         [createTable "t1" [AttributeDef ea (Nmc "x") (st "int")+>                            [RowReferenceConstraint ea "" (name "t2") Nothing+>                             Cascade Cascade] []]] > >      ,s "create table t1 (\n\ >         \ x int,\n\ >         \ y int,\n\ >         \ foreign key (x,y) references t2 on update cascade on delete cascade\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"->                                    ,att "y" "int"]+>         [createTable "t1" [att "x" "int"+>                           ,att "y" "int"]+>          `setTableCons` >          [ReferenceConstraint ea "" [Nmc "x", Nmc "y"] (name "t2") []->           Cascade Cascade] Nothing NoReplace]+>           Cascade Cascade]] >      ,s "create or replace table test (\n\ >         \  fielda text,\n\ >         \  fieldb int\n\ >         \);"->       [CreateTable ea->        (name "test")->        [att "fielda" "text"->        ,att "fieldb" "int"->        ]->        []->        Nothing->        Replace]+>       [createTable "test" [att "fielda" "text"+>                           ,att "fieldb" "int"]+>       `setTableReplace` Replace] > >      ,s "create or replace table tbl as select 1;" >       [CreateTableAs ea (name "tbl") Replace@@ -309,12 +311,53 @@ >         \ y int,\n\ >         \ foreign key (x,y) references t2(z,w)\n\ >         \);"->         [CreateTable ea (name "t1") [att "x" "int"+>         [createTable "t1" [att "x" "int" >                           ,att "y" "int"]+>          `setTableCons` >          [ReferenceConstraint ea "" [Nmc "x", Nmc "y"] (name "t2") [Nmc "z", Nmc "w"]->           Restrict Restrict] Nothing Replace]+>           Restrict Restrict]+>          `setTableReplace` Replace] >      ] >      ]++>      ,Group "options"+>      [s "create table t (\n\+>            \    a int with options(test)\n\+>            \);"+>       [createTable "t" [att "a" "int"+>                         `setAttOpts` [TableOptionKeywords ["test"]]]]+>      ,s "create table t (\n\+>            \    a int with options(test two)\n\+>            \);"+>       [createTable "t" [att "a" "int"+>                         `setAttOpts` [TableOptionKeywords ["test", "two"]]]]+>      ,s "create table t (\n\+>            \    a int\n\+>            \) with options(test two);"+>       [createTable "t" [att "a" "int"]+>        `setTableOpts` [TableOptionKeywords ["test", "two"]]]+>      ,s "create table t (\n\+>            \    a int\n\+>            \) with options(yes='no');"+>       [createTable "t" [att "a" "int"]+>        `setTableOpts` [TableOptionStringVal ["yes"] "no"]]+>      ,s "create table t (\n\+>            \    a int\n\+>            \) with options(yes=a.b);"+>       [createTable "t" [att "a" "int"]+>        `setTableOpts` [TableOptionNameVal ["yes"] [Name ea [Nmc "a", Nmc "b"]]]]+>      ,s "create table t (\n\+>            \    a int\n\+>            \) with options(yes=5.5);"+>       [createTable "t" [att "a" "int"]+>        `setTableOpts` [TableOptionNumberVal ["yes"] "5.5"]]+>      {-,s "create table t (\n\+>            \    a int\n\+>            \) with options(yes=5M);" -- TODO+>       [createTable "t" [att "a" "int"]+>        `setTableOpts` [TableOptionNumberVal ["yes"] "5.5"]]-}+>      ]+ >      ]  >  where
tests/Database/HsSqlPpp/Tests/Parsing/ParserTests.lhs view
@@ -64,7 +64,7 @@ >             ,tableRefs >             ,joins >             ,dml->             ,Group "ddl" [createTable+>             ,Group "ddl" [createTableTests >                          ,miscDdl >                          ,functionsDdl] >             ,schemas
tests/Database/HsSqlPpp/Tests/Parsing/Schemas.lhs view
@@ -14,11 +14,11 @@ >      Group "ddl - schemas" [ >       s "create schema test;" >       [CreateSchema ea->        (Nmc "test")+>        (name "test") >        Nothing] >      ,s "create schema test authorization owner;" >       [CreateSchema ea->        (Nmc "test")+>        (name "test") >        (Just $ name "owner") >      ] >     ,Group "drop schema" [ @@ -32,9 +32,9 @@  >     ,Group "alter schema" [  >       s "alter schema test rename to test2;"->       [AlterSchema ea (Nmc "test") $ AlterSchemaName ea (Nmc "test2")]+>       [AlterSchema ea (name "test") $ AlterSchemaName ea (name "test2")] >       ,s "alter schema test owner to new_owner;"->       [AlterSchema ea (Nmc "test") $ AlterSchemaOwner ea (name "new_owner")]+>       [AlterSchema ea (name "test") $ AlterSchemaOwner ea (name "new_owner")] >      ] >     ] >     ,Group "ddl - schema-explicit tables" [@@ -49,7 +49,7 @@ >        ] >        [] >        Nothing->        NoReplace]+>        NoReplace []] >      ,s "alter table s.a rename to b;" >       [AlterTable ea (nameWithSchema "s" "a") $ RenameTable ea (name "b")] >      ,s "drop table s.t;"
tests/Database/HsSqlPpp/Tests/Parsing/SqlServer.lhs view
@@ -80,7 +80,7 @@ >      \             [fieldname] [typename])" >    $ [CreateTable ea (Name ea [QNmc "schema",QNmc "table_name"]) >       [AttributeDef ea (QNmc "fieldname")->        (SimpleTypeName ea (Name ea [QNmc "typename"])) Nothing []] [] Nothing NoReplace]+>        (SimpleTypeName ea (Name ea [QNmc "typename"])) [] []] [] Nothing NoReplace []]  >   ,s "select a from t  -- no semi colon\n\ >      \select b from t"
tests/Database/HsSqlPpp/Tests/Parsing/Utils.lhs view
@@ -33,7 +33,7 @@ > > > att :: Text -> Text -> AttributeDef-> att n t = AttributeDef ea (Nmc $ T.unpack n) (SimpleTypeName ea $ name t) Nothing []+> att n t = AttributeDef ea (Nmc $ T.unpack n) (SimpleTypeName ea $ name t) [] []  > ea :: Annotation > ea = emptyAnnotation@@ -135,3 +135,29 @@  > tfp :: TableRef -> TableRef > tfp = TableRefParens ea++new create table stuff++> createTable :: Text -> [AttributeDef] -> Statement+> createTable nm atts = CreateTable ea (name nm) atts [] Nothing NoReplace []++> setTableCons :: Statement -> [Constraint] -> Statement+> setTableCons (CreateTable a nm atts _ p r os) cs = CreateTable a nm atts cs p r os+> setTableCons x _ = error $ "setTableCons called on wrong ctor " ++ show x++> setTablePartition :: Statement -> Maybe TablePartitionDef -> Statement+> setTablePartition (CreateTable a nm atts cs _ r os) p = CreateTable a nm atts cs p r os+> setTablePartition x _ = error $ "setTablePartition called on wrong ctor " ++ show x++> setTableReplace :: Statement -> Replace -> Statement+> setTableReplace (CreateTable a nm atts cs p _ os) r = CreateTable a nm atts cs p r os+> setTableReplace x _ = error $ "setTableReplace called on wrong ctor " ++ show x++> setAttOpts :: AttributeDef -> [TableOption] -> AttributeDef+> setAttOpts (AttributeDef a nm ty cs _) opts = AttributeDef a nm ty cs opts++> setTableOpts :: Statement -> [TableOption] -> Statement+> setTableOpts (CreateTable a nm atts cs p r _) opts = CreateTable a nm atts cs p r opts+> setTableOpts x _ = error $ "settableopts called on wrong ctor " ++ show x++ > setAttributeOpts :: Statement ->