GHC.Hs.Expr

ghc-9.2.0.20210422: The GHC API

Safe Haskell | Safe-Inferred
Language | Haskell2010

GHC.Hs.Expr

Contents

- Orphan instances

Description

Abstract Haskell syntax for expressions.

Synopsis

- module Language.Haskell.Syntax.Expr
- pprExpr :: OutputableBndrId p => HsExpr (GhcPass p) -> SDoc
- pprFunBind :: OutputableBndrId idR => MatchGroup (GhcPass idR) (LHsExpr (GhcPass idR)) -> SDoc
- pprLExpr :: OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc
- pprPatBind :: forall bndr p. (OutputableBndrId bndr, OutputableBndrId p) => LPat (GhcPass bndr) -> GRHSs (GhcPass p) (LHsExpr (GhcPass p)) -> SDoc
- pprSplice :: forall p. OutputableBndrId p => HsSplice (GhcPass p) -> SDoc
- pprSpliceDecl :: OutputableBndrId p => HsSplice (GhcPass p) -> SpliceExplicitFlag -> SDoc
- hsExprNeedsParens :: forall p. IsPass p => PprPrec -> HsExpr (GhcPass p) -> Bool
- hsLMatchPats :: LMatch (GhcPass id) body -> [LPat (GhcPass id)]
- isAtomicHsExpr :: forall p. IsPass p => HsExpr (GhcPass p) -> Bool
- isEmptyMatchGroup :: MatchGroup (GhcPass p) body -> Bool
- isQuietHsCmd :: HsCmd id -> Bool
- isQuietHsExpr :: HsExpr id -> Bool
- isSingletonMatchGroup :: [LMatch (GhcPass p) body] -> Bool
- matchContextErrString :: OutputableBndrId p => HsMatchContext (GhcPass p) -> SDoc
- matchGroupArity :: MatchGroup (GhcPass id) body -> Arity
- mkRnSyntaxExpr :: Name -> SyntaxExprRn
- mkSyntaxExpr :: HsExpr GhcRn -> SyntaxExprRn
- noExpr :: HsExpr (GhcPass p)
- noSyntaxExpr :: forall p. IsPass p => SyntaxExpr (GhcPass p)
- parenthesizeHsExpr :: IsPass p => PprPrec -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- pp_dotdot :: SDoc
- pp_rhs :: Outputable body => HsMatchContext passL -> body -> SDoc
- pprArg :: forall idL. OutputableBndrId idL => ApplicativeArg (GhcPass idL) -> SDoc
- pprBindStmt :: (Outputable pat, Outputable expr) => pat -> expr -> SDoc
- pprBinds :: (OutputableBndrId idL, OutputableBndrId idR) => HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> SDoc
- pprBy :: Outputable body => Maybe body -> SDoc
- pprCmd :: OutputableBndrId p => HsCmd (GhcPass p) -> SDoc
- pprCmdArg :: OutputableBndrId p => HsCmdTop (GhcPass p) -> SDoc
- pprComp :: (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc
- pprDebugParendExpr :: OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc
- pprDo :: (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => HsStmtContext any -> [LStmt (GhcPass p) body] -> SDoc
- pprGRHS :: (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHS (GhcPass idR) body -> SDoc
- pprGRHSs :: (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHSs (GhcPass idR) body -> SDoc
- pprHsBracket :: OutputableBndrId p => HsBracket (GhcPass p) -> SDoc
- pprLCmd :: OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc
- pprMatch :: (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc
- pprMatchInCtxt :: (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc
- pprMatches :: (OutputableBndrId idR, Outputable body) => MatchGroup (GhcPass idR) body -> SDoc
- pprParendExpr :: OutputableBndrId p => PprPrec -> HsExpr (GhcPass p) -> SDoc
- pprParendLExpr :: OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc
- pprPendingSplice :: OutputableBndrId p => SplicePointName -> LHsExpr (GhcPass p) -> SDoc
- pprQuals :: (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc
- pprStmt :: forall idL idR body. (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc
- pprStmtInCtxt :: (OutputableBndrId idL, OutputableBndrId idR, Outputable body, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA) => HsStmtContext (GhcPass idL) -> StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc
- pprTransStmt :: Outputable body => Maybe body -> body -> TransForm -> SDoc
- pprTransformStmt :: OutputableBndrId p => [IdP (GhcPass p)] -> LHsExpr (GhcPass p) -> Maybe (LHsExpr (GhcPass p)) -> SDoc
- ppr_apps :: OutputableBndrId p => HsExpr (GhcPass p) -> [Either (LHsExpr (GhcPass p)) (LHsWcType (NoGhcTc (GhcPass p)))] -> SDoc
- ppr_cmd :: forall p. OutputableBndrId p => HsCmd (GhcPass p) -> SDoc
- ppr_do_stmts :: (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => [LStmtLR (GhcPass idL) (GhcPass idR) body] -> SDoc
- ppr_expr :: forall p. OutputableBndrId p => HsExpr (GhcPass p) -> SDoc
- ppr_infix_expr :: forall p. OutputableBndrId p => HsExpr (GhcPass p) -> Maybe SDoc
- ppr_lcmd :: OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc
- ppr_lexpr :: OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc
- ppr_module_name_prefix :: Maybe ModuleName -> SDoc
- ppr_quasi :: OutputableBndr p => p -> p -> FastString -> SDoc
- ppr_splice :: OutputableBndrId p => SDoc -> IdP (GhcPass p) -> LHsExpr (GhcPass p) -> SDoc -> SDoc
- ppr_splice_decl :: OutputableBndrId p => HsSplice (GhcPass p) -> SDoc
- stripParensHsExpr :: HsExpr (GhcPass p) -> HsExpr (GhcPass p)
- stripParensLHsExpr :: LHsExpr (GhcPass p) -> LHsExpr (GhcPass p)
- thBrackets :: SDoc -> SDoc -> SDoc
- thTyBrackets :: SDoc -> SDoc
- tupArgPresent :: HsTupArg (GhcPass p) -> Bool
- data AnnExplicitSum = AnnExplicitSum {
  - aesOpen :: EpaLocation
  - aesBarsBefore :: [EpaLocation]
  - aesBarsAfter :: [EpaLocation]
  - aesClose :: EpaLocation
  }
- data AnnFieldLabel = AnnFieldLabel {
  - afDot :: Maybe EpaLocation
  }
- data AnnProjection = AnnProjection {
  - apOpen :: EpaLocation
  - apClose :: EpaLocation
  }
- data AnnsLet = AnnsLet {
  - alLet :: EpaLocation
  - alIn :: EpaLocation
  }
- data CmdTopTc = CmdTopTc Type Type (CmdSyntaxTable GhcTc)
- data DelayedSplice = DelayedSplice TcLclEnv (LHsExpr GhcRn) TcType (LHsExpr GhcTc)
- data EpAnnHsCase = EpAnnHsCase {
  - hsCaseAnnCase :: EpaLocation
  - hsCaseAnnOf :: EpaLocation
  - hsCaseAnnsRest :: [AddEpAnn]
  }
- data EpAnnUnboundVar = EpAnnUnboundVar {
  - hsUnboundBackquotes :: (EpaLocation, EpaLocation)
  - hsUnboundHole :: EpaLocation
  }
- data GrhsAnn = GrhsAnn {
  - ga_vbar :: Maybe EpaLocation
  - ga_sep :: AddEpAnn
  }
- data HsExpansion a b = HsExpanded a b
- newtype HsSplicedT = HsSplicedT DelayedSplice
- data HsWrap hs_syn = HsWrap HsWrapper (hs_syn GhcTc)
- data PendingRnSplice = PendingRnSplice UntypedSpliceFlavour SplicePointName (LHsExpr GhcRn)
- data PendingTcSplice = PendingTcSplice SplicePointName (LHsExpr GhcTc)
- type PostTcExpr = HsExpr GhcTc
- type PostTcTable = [(Name, PostTcExpr)]
- data RecStmtTc = RecStmtTc {
  - recS_bind_ty :: Type
  - recS_later_rets :: [PostTcExpr]
  - recS_rec_rets :: [PostTcExpr]
  - recS_ret_ty :: Type
  }
- data RecordUpdTc = RecordUpdTc {
  - rupd_cons :: [ConLike]
  - rupd_in_tys :: [Type]
  - rupd_out_tys :: [Type]
  - rupd_wrap :: HsWrapper
  }
- type family SyntaxExprGhc (p :: Pass) = (r :: Type) | r -> p where ...
- data SyntaxExprRn
  - = SyntaxExprRn (HsExpr GhcRn)
  - | NoSyntaxExprRn
- data SyntaxExprTc
  - = SyntaxExprTc {
    - syn_expr :: HsExpr GhcTc
    - syn_arg_wraps :: [HsWrapper]
    - syn_res_wrap :: HsWrapper
    }
  - | NoSyntaxExprTc
- data XBindStmtRn = XBindStmtRn {
  - xbsrn_bindOp :: SyntaxExpr GhcRn
  - xbsrn_failOp :: FailOperator GhcRn
  }
- data XBindStmtTc = XBindStmtTc {
  - xbstc_bindOp :: SyntaxExpr GhcTc
  - xbstc_boundResultType :: Type
  - xbstc_boundResultMult :: Mult
  - xbstc_failOp :: FailOperator GhcTc
  }
- data XXExprGhcTc
  - = WrapExpr !(HsWrap HsExpr)
  - | ExpansionExpr !(HsExpansion (HsExpr GhcRn) (HsExpr GhcTc))

# Documentation

module Language.Haskell.Syntax.Expr

pprExpr :: OutputableBndrId p => HsExpr (GhcPass p) -> SDoc Source #

pprFunBind :: OutputableBndrId idR => MatchGroup (GhcPass idR) (LHsExpr (GhcPass idR)) -> SDoc Source #

pprLExpr :: OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc Source #

pprPatBind :: forall bndr p. (OutputableBndrId bndr, OutputableBndrId p) => LPat (GhcPass bndr) -> GRHSs (GhcPass p) (LHsExpr (GhcPass p)) -> SDoc Source #

pprSplice :: forall p. OutputableBndrId p => HsSplice (GhcPass p) -> SDoc Source #

pprSpliceDecl :: OutputableBndrId p => HsSplice (GhcPass p) -> SpliceExplicitFlag -> SDoc Source #

hsExprNeedsParens :: forall p. IsPass p => PprPrec -> HsExpr (GhcPass p) -> Bool Source #

``hsExprNeedsParens` p e` returns `True` if the expression `e` needs parentheses under precedence `p`.

hsLMatchPats :: LMatch (GhcPass id) body -> [LPat (GhcPass id)] Source #

isAtomicHsExpr :: forall p. IsPass p => HsExpr (GhcPass p) -> Bool Source #

isEmptyMatchGroup :: MatchGroup (GhcPass p) body -> Bool Source #

isQuietHsCmd :: HsCmd id -> Bool Source #

isQuietHsExpr :: HsExpr id -> Bool Source #

isSingletonMatchGroup :: [LMatch (GhcPass p) body] -> Bool Source #

Is there only one RHS in this list of matches?

matchContextErrString :: OutputableBndrId p => HsMatchContext (GhcPass p) -> SDoc Source #

matchGroupArity :: MatchGroup (GhcPass id) body -> Arity Source #

mkRnSyntaxExpr :: Name -> SyntaxExprRn Source #

Make a `SyntaxExpr` from a `Name` (the "rn" is because this is used in the renamer).

mkSyntaxExpr :: HsExpr GhcRn -> SyntaxExprRn Source #

Make a 'SyntaxExpr GhcRn' from an expression Used only in getMonadFailOp. See Note [Monad fail : Rebindable syntax, overloaded strings] in GHC.Rename.Expr

noExpr :: HsExpr (GhcPass p) Source #

This is used for rebindable-syntax pieces that are too polymorphic for tcSyntaxOp (trS_fmap and the mzip in ParStmt)

noSyntaxExpr :: forall p. IsPass p => SyntaxExpr (GhcPass p) Source #

parenthesizeHsExpr :: IsPass p => PprPrec -> LHsExpr (GhcPass p) -> LHsExpr (GhcPass p) Source #

``parenthesizeHsExpr` p e` checks if ``hsExprNeedsParens` p e` is true, and if so, surrounds `e` with an `HsPar`. Otherwise, it simply returns `e`.

pp_dotdot :: SDoc Source #

pp_rhs :: Outputable body => HsMatchContext passL -> body -> SDoc Source #

pprArg :: forall idL. OutputableBndrId idL => ApplicativeArg (GhcPass idL) -> SDoc Source #

pprBindStmt :: (Outputable pat, Outputable expr) => pat -> expr -> SDoc Source #

pprBinds :: (OutputableBndrId idL, OutputableBndrId idR) => HsLocalBindsLR (GhcPass idL) (GhcPass idR) -> SDoc Source #

pprBy :: Outputable body => Maybe body -> SDoc Source #

pprCmd :: OutputableBndrId p => HsCmd (GhcPass p) -> SDoc Source #

pprCmdArg :: OutputableBndrId p => HsCmdTop (GhcPass p) -> SDoc Source #

pprComp :: (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc Source #

pprDebugParendExpr :: OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc Source #

pprDo :: (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => HsStmtContext any -> [LStmt (GhcPass p) body] -> SDoc Source #

pprGRHS :: (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHS (GhcPass idR) body -> SDoc Source #

pprGRHSs :: (OutputableBndrId idR, Outputable body) => HsMatchContext passL -> GRHSs (GhcPass idR) body -> SDoc Source #

pprHsBracket :: OutputableBndrId p => HsBracket (GhcPass p) -> SDoc Source #

pprLCmd :: OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc Source #

pprMatch :: (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc Source #

pprMatchInCtxt :: (OutputableBndrId idR, Outputable body) => Match (GhcPass idR) body -> SDoc Source #

pprMatches :: (OutputableBndrId idR, Outputable body) => MatchGroup (GhcPass idR) body -> SDoc Source #

pprParendExpr :: OutputableBndrId p => PprPrec -> HsExpr (GhcPass p) -> SDoc Source #

pprParendLExpr :: OutputableBndrId p => PprPrec -> LHsExpr (GhcPass p) -> SDoc Source #

pprPendingSplice :: OutputableBndrId p => SplicePointName -> LHsExpr (GhcPass p) -> SDoc Source #

pprQuals :: (OutputableBndrId p, Outputable body, Anno (StmtLR (GhcPass p) (GhcPass p) body) ~ SrcSpanAnnA) => [LStmt (GhcPass p) body] -> SDoc Source #

pprStmt :: forall idL idR body. (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc Source #

pprStmtInCtxt :: (OutputableBndrId idL, OutputableBndrId idR, Outputable body, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA) => HsStmtContext (GhcPass idL) -> StmtLR (GhcPass idL) (GhcPass idR) body -> SDoc Source #

pprTransStmt :: Outputable body => Maybe body -> body -> TransForm -> SDoc Source #

pprTransformStmt :: OutputableBndrId p => [IdP (GhcPass p)] -> LHsExpr (GhcPass p) -> Maybe (LHsExpr (GhcPass p)) -> SDoc Source #

ppr_apps :: OutputableBndrId p => HsExpr (GhcPass p) -> [Either (LHsExpr (GhcPass p)) (LHsWcType (NoGhcTc (GhcPass p)))] -> SDoc Source #

ppr_cmd :: forall p. OutputableBndrId p => HsCmd (GhcPass p) -> SDoc Source #

ppr_do_stmts :: (OutputableBndrId idL, OutputableBndrId idR, Anno (StmtLR (GhcPass idL) (GhcPass idR) body) ~ SrcSpanAnnA, Outputable body) => [LStmtLR (GhcPass idL) (GhcPass idR) body] -> SDoc Source #

ppr_expr :: forall p. OutputableBndrId p => HsExpr (GhcPass p) -> SDoc Source #

ppr_infix_expr :: forall p. OutputableBndrId p => HsExpr (GhcPass p) -> Maybe SDoc Source #

ppr_lcmd :: OutputableBndrId p => LHsCmd (GhcPass p) -> SDoc Source #

ppr_lexpr :: OutputableBndrId p => LHsExpr (GhcPass p) -> SDoc Source #

ppr_module_name_prefix :: Maybe ModuleName -> SDoc Source #

ppr_quasi :: OutputableBndr p => p -> p -> FastString -> SDoc Source #

ppr_splice :: OutputableBndrId p => SDoc -> IdP (GhcPass p) -> LHsExpr (GhcPass p) -> SDoc -> SDoc Source #

ppr_splice_decl :: OutputableBndrId p => HsSplice (GhcPass p) -> SDoc Source #

stripParensHsExpr :: HsExpr (GhcPass p) -> HsExpr (GhcPass p) Source #

stripParensLHsExpr :: LHsExpr (GhcPass p) -> LHsExpr (GhcPass p) Source #

thBrackets :: SDoc -> SDoc -> SDoc Source #

thTyBrackets :: SDoc -> SDoc Source #

tupArgPresent :: HsTupArg (GhcPass p) -> Bool Source #

data AnnExplicitSum Source #

Constructors

AnnExplicitSum |
Fields aesOpen :: EpaLocation aesBarsBefore :: [EpaLocation] aesBarsAfter :: [EpaLocation] aesClose :: EpaLocation

#### Instances

Instances details

Data AnnExplicitSum # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnExplicitSum -> c AnnExplicitSum Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnExplicitSum Source # toConstr :: AnnExplicitSum -> Constr Source # dataTypeOf :: AnnExplicitSum -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnExplicitSum) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnExplicitSum) Source # gmapT :: (forall b. Data b => b -> b) -> AnnExplicitSum -> AnnExplicitSum Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnExplicitSum -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnExplicitSum -> r Source # gmapQ :: (forall d. Data d => d -> u) -> AnnExplicitSum -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnExplicitSum -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnExplicitSum -> m AnnExplicitSum Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnExplicitSum -> m AnnExplicitSum Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnExplicitSum -> m AnnExplicitSum Source #

data AnnFieldLabel Source #

Constructors

AnnFieldLabel |
Fields afDot :: Maybe EpaLocation

#### Instances

Instances details

Data AnnFieldLabel # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnFieldLabel -> c AnnFieldLabel Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnFieldLabel Source # toConstr :: AnnFieldLabel -> Constr Source # dataTypeOf :: AnnFieldLabel -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnFieldLabel) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnFieldLabel) Source # gmapT :: (forall b. Data b => b -> b) -> AnnFieldLabel -> AnnFieldLabel Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnFieldLabel -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnFieldLabel -> r Source # gmapQ :: (forall d. Data d => d -> u) -> AnnFieldLabel -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnFieldLabel -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnFieldLabel -> m AnnFieldLabel Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnFieldLabel -> m AnnFieldLabel Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnFieldLabel -> m AnnFieldLabel Source #

data AnnProjection Source #

Constructors

AnnProjection |
Fields apOpen :: EpaLocation '(' apClose :: EpaLocation ')'

#### Instances

Instances details

Data AnnProjection # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnProjection -> c AnnProjection Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnProjection Source # toConstr :: AnnProjection -> Constr Source # dataTypeOf :: AnnProjection -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnProjection) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnProjection) Source # gmapT :: (forall b. Data b => b -> b) -> AnnProjection -> AnnProjection Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnProjection -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnProjection -> r Source # gmapQ :: (forall d. Data d => d -> u) -> AnnProjection -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnProjection -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnProjection -> m AnnProjection Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnProjection -> m AnnProjection Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnProjection -> m AnnProjection Source #

data AnnsLet Source #

Constructors

AnnsLet |
Fields alLet :: EpaLocation alIn :: EpaLocation

#### Instances

Instances details

Data AnnsLet # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnsLet -> c AnnsLet Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnsLet Source # toConstr :: AnnsLet -> Constr Source # dataTypeOf :: AnnsLet -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnsLet) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnsLet) Source # gmapT :: (forall b. Data b => b -> b) -> AnnsLet -> AnnsLet Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnsLet -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnsLet -> r Source # gmapQ :: (forall d. Data d => d -> u) -> AnnsLet -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnsLet -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnsLet -> m AnnsLet Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsLet -> m AnnsLet Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnsLet -> m AnnsLet Source #

data CmdTopTc Source #

Constructors

CmdTopTc Type Type (CmdSyntaxTable GhcTc) |

#### Instances

Instances details

Data CmdTopTc # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> CmdTopTc -> c CmdTopTc Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c CmdTopTc Source # toConstr :: CmdTopTc -> Constr Source # dataTypeOf :: CmdTopTc -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c CmdTopTc) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c CmdTopTc) Source # gmapT :: (forall b. Data b => b -> b) -> CmdTopTc -> CmdTopTc Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> CmdTopTc -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> CmdTopTc -> r Source # gmapQ :: (forall d. Data d => d -> u) -> CmdTopTc -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> CmdTopTc -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> CmdTopTc -> m CmdTopTc Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> CmdTopTc -> m CmdTopTc Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> CmdTopTc -> m CmdTopTc Source #

data DelayedSplice Source #

Constructors

DelayedSplice TcLclEnv (LHsExpr GhcRn) TcType (LHsExpr GhcTc) |

#### Instances

Instances details

Data DelayedSplice # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DelayedSplice -> c DelayedSplice Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DelayedSplice Source # toConstr :: DelayedSplice -> Constr Source # dataTypeOf :: DelayedSplice -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DelayedSplice) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DelayedSplice) Source # gmapT :: (forall b. Data b => b -> b) -> DelayedSplice -> DelayedSplice Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DelayedSplice -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DelayedSplice -> r Source # gmapQ :: (forall d. Data d => d -> u) -> DelayedSplice -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> DelayedSplice -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DelayedSplice -> m DelayedSplice Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DelayedSplice -> m DelayedSplice Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DelayedSplice -> m DelayedSplice Source #

data EpAnnHsCase Source #

Constructors

EpAnnHsCase |
Fields hsCaseAnnCase :: EpaLocation hsCaseAnnOf :: EpaLocation hsCaseAnnsRest :: [AddEpAnn]

#### Instances

Instances details

Data EpAnnHsCase # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnnHsCase -> c EpAnnHsCase Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpAnnHsCase Source # toConstr :: EpAnnHsCase -> Constr Source # dataTypeOf :: EpAnnHsCase -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpAnnHsCase) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpAnnHsCase) Source # gmapT :: (forall b. Data b => b -> b) -> EpAnnHsCase -> EpAnnHsCase Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnHsCase -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnHsCase -> r Source # gmapQ :: (forall d. Data d => d -> u) -> EpAnnHsCase -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnnHsCase -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnnHsCase -> m EpAnnHsCase Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnHsCase -> m EpAnnHsCase Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnHsCase -> m EpAnnHsCase Source #

data EpAnnUnboundVar Source #

Constructors

EpAnnUnboundVar |
Fields hsUnboundBackquotes :: (EpaLocation, EpaLocation) hsUnboundHole :: EpaLocation

#### Instances

Instances details

Data EpAnnUnboundVar # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpAnnUnboundVar -> c EpAnnUnboundVar Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpAnnUnboundVar Source # toConstr :: EpAnnUnboundVar -> Constr Source # dataTypeOf :: EpAnnUnboundVar -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpAnnUnboundVar) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpAnnUnboundVar) Source # gmapT :: (forall b. Data b => b -> b) -> EpAnnUnboundVar -> EpAnnUnboundVar Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnUnboundVar -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpAnnUnboundVar -> r Source # gmapQ :: (forall d. Data d => d -> u) -> EpAnnUnboundVar -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> EpAnnUnboundVar -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpAnnUnboundVar -> m EpAnnUnboundVar Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnUnboundVar -> m EpAnnUnboundVar Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpAnnUnboundVar -> m EpAnnUnboundVar Source #

data GrhsAnn Source #

Constructors

GrhsAnn |
Fields ga_vbar :: Maybe EpaLocation ga_sep :: AddEpAnn Match separator location

#### Instances

Instances details

Data GrhsAnn # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GrhsAnn -> c GrhsAnn Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GrhsAnn Source # toConstr :: GrhsAnn -> Constr Source # dataTypeOf :: GrhsAnn -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GrhsAnn) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GrhsAnn) Source # gmapT :: (forall b. Data b => b -> b) -> GrhsAnn -> GrhsAnn Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GrhsAnn -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GrhsAnn -> r Source # gmapQ :: (forall d. Data d => d -> u) -> GrhsAnn -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> GrhsAnn -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GrhsAnn -> m GrhsAnn Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GrhsAnn -> m GrhsAnn Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GrhsAnn -> m GrhsAnn Source #
Outputable GrhsAnn # |
Instance details Defined in GHC.Hs.Expr Methods ppr :: GrhsAnn -> SDoc Source #

data HsExpansion a b Source #

Constructors

HsExpanded a b |

#### Instances

Instances details

(Data a, Data b) => Data (HsExpansion a b) # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> HsExpansion a b -> c (HsExpansion a b) Source # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsExpansion a b) Source # toConstr :: HsExpansion a b -> Constr Source # dataTypeOf :: HsExpansion a b -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsExpansion a b)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsExpansion a b)) Source # gmapT :: (forall b0. Data b0 => b0 -> b0) -> HsExpansion a b -> HsExpansion a b Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsExpansion a b -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsExpansion a b -> r Source # gmapQ :: (forall d. Data d => d -> u) -> HsExpansion a b -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsExpansion a b -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsExpansion a b -> m (HsExpansion a b) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsExpansion a b -> m (HsExpansion a b) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsExpansion a b -> m (HsExpansion a b) Source #
(Outputable a, Outputable b) => Outputable (HsExpansion a b) # | Just print the original expression (the `a`).
Instance details Defined in GHC.Hs.Expr Methods ppr :: HsExpansion a b -> SDoc Source #

newtype HsSplicedT Source #

Constructors

HsSplicedT DelayedSplice |

#### Instances

Instances details

Data HsSplicedT # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsSplicedT -> c HsSplicedT Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsSplicedT Source # toConstr :: HsSplicedT -> Constr Source # dataTypeOf :: HsSplicedT -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsSplicedT) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsSplicedT) Source # gmapT :: (forall b. Data b => b -> b) -> HsSplicedT -> HsSplicedT Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsSplicedT -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsSplicedT -> r Source # gmapQ :: (forall d. Data d => d -> u) -> HsSplicedT -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsSplicedT -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsSplicedT -> m HsSplicedT Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSplicedT -> m HsSplicedT Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSplicedT -> m HsSplicedT Source #

data HsWrap hs_syn Source #

HsWrap appears only in typechecker output Invariant: The contained Expr is *NOT* itself an HsWrap. See Note [Detecting forced eta expansion] in GHC.HsToCore.Expr. This invariant is maintained by `mkHsWrap`. hs_syn is something like HsExpr or HsCmd

Constructors

HsWrap HsWrapper (hs_syn GhcTc) |

#### Instances

Instances details

(Data (hs_syn GhcTc), Typeable hs_syn) => Data (HsWrap hs_syn) # |
Instance details Defined in GHC.Hs.Expr Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsWrap hs_syn -> c (HsWrap hs_syn) Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsWrap hs_syn) Source # toConstr :: HsWrap hs_syn -> Constr Source # dataTypeOf :: HsWrap hs_syn -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsWrap hs_syn)) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsWrap hs_syn)) Source # gmapT :: (forall b. Data b => b -> b) -> HsWrap hs_syn -> HsWrap hs_syn Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsWrap hs_syn -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsWrap hs_syn -> r Source # gmapQ :: (forall d. Data d => d -> u) -> HsWrap hs_syn -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> HsWrap hs_syn -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsWrap hs_syn -> m (HsWrap hs_syn) Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWrap hs_syn -> m (HsWrap hs_syn) Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWrap hs_syn -> m (HsWrap hs_syn) Source #

data PendingRnSplice Source #

Pending Renamer Splice

Constructors

PendingRnSplice UntypedSpliceFlavour SplicePointName (LHsExpr GhcRn) |

#### Instances

Instances details

Data PendingRnSplice # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PendingRnSplice -> c PendingRnSplice Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PendingRnSplice Source # toConstr :: PendingRnSplice -> Constr Source # dataTypeOf :: PendingRnSplice -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PendingRnSplice) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PendingRnSplice) Source # gmapT :: (forall b. Data b => b -> b) -> PendingRnSplice -> PendingRnSplice Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PendingRnSplice -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PendingRnSplice -> r Source # gmapQ :: (forall d. Data d => d -> u) -> PendingRnSplice -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> PendingRnSplice -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PendingRnSplice -> m PendingRnSplice Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PendingRnSplice -> m PendingRnSplice Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PendingRnSplice -> m PendingRnSplice Source #
Outputable PendingRnSplice # |
Instance details Defined in GHC.Hs.Expr Methods ppr :: PendingRnSplice -> SDoc Source #

data PendingTcSplice Source #

Pending Type-checker Splice

Constructors

PendingTcSplice SplicePointName (LHsExpr GhcTc) |

#### Instances

Instances details

Data PendingTcSplice # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PendingTcSplice -> c PendingTcSplice Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PendingTcSplice Source # toConstr :: PendingTcSplice -> Constr Source # dataTypeOf :: PendingTcSplice -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PendingTcSplice) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PendingTcSplice) Source # gmapT :: (forall b. Data b => b -> b) -> PendingTcSplice -> PendingTcSplice Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PendingTcSplice -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PendingTcSplice -> r Source # gmapQ :: (forall d. Data d => d -> u) -> PendingTcSplice -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> PendingTcSplice -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PendingTcSplice -> m PendingTcSplice Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PendingTcSplice -> m PendingTcSplice Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PendingTcSplice -> m PendingTcSplice Source #
Outputable PendingTcSplice # |
Instance details Defined in GHC.Hs.Expr Methods ppr :: PendingTcSplice -> SDoc Source #

type PostTcExpr = HsExpr GhcTc Source #

Post-Type checking Expression

PostTcExpr is an evidence expression attached to the syntax tree by the type checker (c.f. postTcType).

type PostTcTable = [(Name, PostTcExpr)] Source #

Post-Type checking Table

We use a PostTcTable where there are a bunch of pieces of evidence, more than is convenient to keep individually.

data RecStmtTc Source #

Constructors

RecStmtTc |
Fields recS_bind_ty :: Type recS_later_rets :: [PostTcExpr] recS_rec_rets :: [PostTcExpr] recS_ret_ty :: Type

#### Instances

Instances details

Data RecStmtTc # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RecStmtTc -> c RecStmtTc Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RecStmtTc Source # toConstr :: RecStmtTc -> Constr Source # dataTypeOf :: RecStmtTc -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RecStmtTc) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RecStmtTc) Source # gmapT :: (forall b. Data b => b -> b) -> RecStmtTc -> RecStmtTc Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RecStmtTc -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RecStmtTc -> r Source # gmapQ :: (forall d. Data d => d -> u) -> RecStmtTc -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> RecStmtTc -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RecStmtTc -> m RecStmtTc Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RecStmtTc -> m RecStmtTc Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RecStmtTc -> m RecStmtTc Source #

data RecordUpdTc Source #

Extra data fields for a `RecordUpd`, added by the type checker

Constructors

RecordUpdTc |
Fields rupd_cons :: [ConLike] rupd_in_tys :: [Type] rupd_out_tys :: [Type] rupd_wrap :: HsWrapper

#### Instances

Instances details

Data RecordUpdTc # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> RecordUpdTc -> c RecordUpdTc Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c RecordUpdTc Source # toConstr :: RecordUpdTc -> Constr Source # dataTypeOf :: RecordUpdTc -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c RecordUpdTc) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c RecordUpdTc) Source # gmapT :: (forall b. Data b => b -> b) -> RecordUpdTc -> RecordUpdTc Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> RecordUpdTc -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> RecordUpdTc -> r Source # gmapQ :: (forall d. Data d => d -> u) -> RecordUpdTc -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> RecordUpdTc -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> RecordUpdTc -> m RecordUpdTc Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> RecordUpdTc -> m RecordUpdTc Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> RecordUpdTc -> m RecordUpdTc Source #

type family SyntaxExprGhc (p :: Pass) = (r :: Type) | r -> p where ... Source #

Equations

SyntaxExprGhc 'Parsed = NoExtField |
SyntaxExprGhc 'Renamed = SyntaxExprRn |
SyntaxExprGhc 'Typechecked = SyntaxExprTc |

data SyntaxExprRn Source #

The function to use in rebindable syntax. See Note [NoSyntaxExpr].

Constructors

SyntaxExprRn (HsExpr GhcRn) |
NoSyntaxExprRn |

#### Instances

Instances details

Data SyntaxExprRn # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SyntaxExprRn -> c SyntaxExprRn Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SyntaxExprRn Source # toConstr :: SyntaxExprRn -> Constr Source # dataTypeOf :: SyntaxExprRn -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SyntaxExprRn) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SyntaxExprRn) Source # gmapT :: (forall b. Data b => b -> b) -> SyntaxExprRn -> SyntaxExprRn Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SyntaxExprRn -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SyntaxExprRn -> r Source # gmapQ :: (forall d. Data d => d -> u) -> SyntaxExprRn -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> SyntaxExprRn -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SyntaxExprRn -> m SyntaxExprRn Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SyntaxExprRn -> m SyntaxExprRn Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SyntaxExprRn -> m SyntaxExprRn Source #
Outputable SyntaxExprRn # |
Instance details Defined in GHC.Hs.Expr Methods ppr :: SyntaxExprRn -> SDoc Source #

data SyntaxExprTc Source #

An expression with wrappers, used for rebindable syntax

This should desugar to

    syn_res_wrap $ syn_expr (syn_arg_wraps[0] arg0)
                            (syn_arg_wraps[1] arg1) ...

where the actual arguments come from elsewhere in the AST.

Constructors

SyntaxExprTc |
Fields syn_expr :: HsExpr GhcTc syn_arg_wraps :: [HsWrapper] syn_res_wrap :: HsWrapper
NoSyntaxExprTc |

#### Instances

Instances details

Data SyntaxExprTc # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SyntaxExprTc -> c SyntaxExprTc Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SyntaxExprTc Source # toConstr :: SyntaxExprTc -> Constr Source # dataTypeOf :: SyntaxExprTc -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SyntaxExprTc) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SyntaxExprTc) Source # gmapT :: (forall b. Data b => b -> b) -> SyntaxExprTc -> SyntaxExprTc Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SyntaxExprTc -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SyntaxExprTc -> r Source # gmapQ :: (forall d. Data d => d -> u) -> SyntaxExprTc -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> SyntaxExprTc -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SyntaxExprTc -> m SyntaxExprTc Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SyntaxExprTc -> m SyntaxExprTc Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SyntaxExprTc -> m SyntaxExprTc Source #
Outputable SyntaxExprTc # |
Instance details Defined in GHC.Hs.Expr Methods ppr :: SyntaxExprTc -> SDoc Source #

data XBindStmtRn Source #

Constructors

XBindStmtRn |
Fields xbsrn_bindOp :: SyntaxExpr GhcRn xbsrn_failOp :: FailOperator GhcRn

#### Instances

Instances details

Data XBindStmtRn # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> XBindStmtRn -> c XBindStmtRn Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c XBindStmtRn Source # toConstr :: XBindStmtRn -> Constr Source # dataTypeOf :: XBindStmtRn -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c XBindStmtRn) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c XBindStmtRn) Source # gmapT :: (forall b. Data b => b -> b) -> XBindStmtRn -> XBindStmtRn Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> XBindStmtRn -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> XBindStmtRn -> r Source # gmapQ :: (forall d. Data d => d -> u) -> XBindStmtRn -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> XBindStmtRn -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> XBindStmtRn -> m XBindStmtRn Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> XBindStmtRn -> m XBindStmtRn Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> XBindStmtRn -> m XBindStmtRn Source #

data XBindStmtTc Source #

Constructors

XBindStmtTc |
Fields xbstc_bindOp :: SyntaxExpr GhcTc xbstc_boundResultType :: Type xbstc_boundResultMult :: Mult xbstc_failOp :: FailOperator GhcTc

#### Instances

Instances details

Data XBindStmtTc # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> XBindStmtTc -> c XBindStmtTc Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c XBindStmtTc Source # toConstr :: XBindStmtTc -> Constr Source # dataTypeOf :: XBindStmtTc -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c XBindStmtTc) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c XBindStmtTc) Source # gmapT :: (forall b. Data b => b -> b) -> XBindStmtTc -> XBindStmtTc Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> XBindStmtTc -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> XBindStmtTc -> r Source # gmapQ :: (forall d. Data d => d -> u) -> XBindStmtTc -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> XBindStmtTc -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> XBindStmtTc -> m XBindStmtTc Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> XBindStmtTc -> m XBindStmtTc Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> XBindStmtTc -> m XBindStmtTc Source #

data XXExprGhcTc Source #

Constructors

WrapExpr !(HsWrap HsExpr) |
ExpansionExpr !(HsExpansion (HsExpr GhcRn) (HsExpr GhcTc)) |

#### Instances

Instances details

Data XXExprGhcTc # |
Instance details Defined in GHC.Hs.Instances Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> XXExprGhcTc -> c XXExprGhcTc Source # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c XXExprGhcTc Source # toConstr :: XXExprGhcTc -> Constr Source # dataTypeOf :: XXExprGhcTc -> DataType Source # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c XXExprGhcTc) Source # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c XXExprGhcTc) Source # gmapT :: (forall b. Data b => b -> b) -> XXExprGhcTc -> XXExprGhcTc Source # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> XXExprGhcTc -> r Source # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> XXExprGhcTc -> r Source # gmapQ :: (forall d. Data d => d -> u) -> XXExprGhcTc -> [u] Source # gmapQi :: Int -> (forall d. Data d => d -> u) -> XXExprGhcTc -> u Source # gmapM :: Monad m => (forall d. Data d => d -> m d) -> XXExprGhcTc -> m XXExprGhcTc Source # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> XXExprGhcTc -> m XXExprGhcTc Source # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> XXExprGhcTc -> m XXExprGhcTc Source #

# Orphan instances

OutputableBndrId idL => Outputable (ApplicativeArg (GhcPass idL)) # |
Instance details Methods ppr :: ApplicativeArg (GhcPass idL) -> SDoc Source #
OutputableBndrId p => Outputable (ArithSeqInfo (GhcPass p)) # |
Instance details Methods ppr :: ArithSeqInfo (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsBracket (GhcPass p)) # |
Instance details Methods ppr :: HsBracket (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsCmd (GhcPass p)) # |
Instance details Methods ppr :: HsCmd (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsCmdTop (GhcPass p)) # |
Instance details Methods ppr :: HsCmdTop (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsExpr (GhcPass p)) # |
Instance details Methods ppr :: HsExpr (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsMatchContext (GhcPass p)) # |
Instance details Methods ppr :: HsMatchContext (GhcPass p) -> SDoc Source #
Outputable (HsPragE (GhcPass p)) # |
Instance details Methods ppr :: HsPragE (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsSplice (GhcPass p)) # |
Instance details Methods ppr :: HsSplice (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsSplicedThing (GhcPass p)) # |
Instance details Methods ppr :: HsSplicedThing (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsStmtContext (GhcPass p)) # |
Instance details Methods ppr :: HsStmtContext (GhcPass p) -> SDoc Source #
Anno a ~ SrcSpanAnn' (EpAnn an) => WrapXRec (GhcPass p) a # |
Instance details Methods wrapXRec :: a -> XRec (GhcPass p) a Source #
(OutputableBndrId pr, Outputable body) => Outputable (Match (GhcPass pr) body) # |
Instance details Methods ppr :: Match (GhcPass pr) body -> SDoc Source #
(Outputable (StmtLR (GhcPass idL) (GhcPass idL) (LHsExpr (GhcPass idL))), Outputable (XXParStmtBlock (GhcPass idL) (GhcPass idR))) => Outputable (ParStmtBlock (GhcPass idL) (GhcPass idR)) # |
Instance details Methods ppr :: ParStmtBlock (GhcPass idL) (GhcPass idR) -> SDoc Source #
(OutputableBndrId pl, OutputableBndrId pr, Anno (StmtLR (GhcPass pl) (GhcPass pr) body) ~ SrcSpanAnnA, Outputable body) => Outputable (StmtLR (GhcPass pl) (GhcPass pr) body) # |
Instance details Methods ppr :: StmtLR (GhcPass pl) (GhcPass pr) body -> SDoc Source #