ghc-lib-parser-9.12.2.20250421: The GHC API, decoupled from GHC versions

Safe Haskell | Ignore
Language | GHC2021

GHC.Hs.Type

Contents

- Orphan instances

Synopsis

- type Mult = Type
- data HsScaled pass a = HsScaled (HsArrow pass) a
- hsMult :: HsScaled pass a -> HsArrow pass
- hsScaledThing :: HsScaled pass a -> a
- type HsArrow pass = HsArrowOf (LHsType pass) pass
- data HsArrowOf mult pass
  - = HsUnrestrictedArrow !(XUnrestrictedArrow mult pass)
  - | HsLinearArrow !(XLinearArrow mult pass)
  - | HsExplicitMult !(XExplicitMult mult pass) !mult
  - | XArrow !(XXArrow mult pass)
- arrowToHsType :: HsArrow GhcRn -> LHsType GhcRn
- expandHsArrow :: (LocatedN Name -> t GhcRn) -> HsArrowOf (LocatedA (t GhcRn)) GhcRn -> LocatedA (t GhcRn)
- data EpLinearArrow
  - = EpPct1 !(EpToken "%1") !TokRarrow
  - | EpLolly !(EpToken "\8888")
- hsLinear :: forall (p :: Pass) a. IsPass p => a -> HsScaled (GhcPass p) a
- hsUnrestricted :: forall (p :: Pass) a. IsPass p => a -> HsScaled (GhcPass p) a
- isUnrestricted :: HsArrow GhcRn -> Bool
- pprHsArrow :: forall mult (pass :: Pass). (Outputable mult, OutputableBndrId pass) => HsArrowOf mult (GhcPass pass) -> SDoc
- data HsType pass
  - = HsForAllTy {
    - hst_xforall :: XForAllTy pass
    - hst_tele :: HsForAllTelescope pass
    - hst_body :: LHsType pass
    }
  - | HsQualTy {
    - hst_xqual :: XQualTy pass
    - hst_ctxt :: LHsContext pass
    - hst_body :: LHsType pass
    }
  - | HsTyVar (XTyVar pass) PromotionFlag (LIdP pass)
  - | HsAppTy (XAppTy pass) (LHsType pass) (LHsType pass)
  - | HsAppKindTy (XAppKindTy pass) (LHsType pass) (LHsKind pass)
  - | HsFunTy (XFunTy pass) (HsArrow pass) (LHsType pass) (LHsType pass)
  - | HsListTy (XListTy pass) (LHsType pass)
  - | HsTupleTy (XTupleTy pass) HsTupleSort [LHsType pass]
  - | HsSumTy (XSumTy pass) [LHsType pass]
  - | HsOpTy (XOpTy pass) PromotionFlag (LHsType pass) (LIdP pass) (LHsType pass)
  - | HsParTy (XParTy pass) (LHsType pass)
  - | HsIParamTy (XIParamTy pass) (XRec pass HsIPName) (LHsType pass)
  - | HsStarTy (XStarTy pass) Bool
  - | HsKindSig (XKindSig pass) (LHsType pass) (LHsKind pass)
  - | HsSpliceTy (XSpliceTy pass) (HsUntypedSplice pass)
  - | HsDocTy (XDocTy pass) (LHsType pass) (LHsDoc pass)
  - | HsBangTy (XBangTy pass) HsBang (LHsType pass)
  - | HsRecTy (XRecTy pass) [LConDeclField pass]
  - | HsExplicitListTy (XExplicitListTy pass) PromotionFlag [LHsType pass]
  - | HsExplicitTupleTy (XExplicitTupleTy pass) PromotionFlag [LHsType pass]
  - | HsTyLit (XTyLit pass) (HsTyLit pass)
  - | HsWildCardTy (XWildCardTy pass)
  - | XHsType !(XXType pass)
- type HsCoreTy = Type
- type LHsType pass = XRec pass (HsType pass)
- type HsKind pass = HsType pass
- type LHsKind pass = XRec pass (HsKind pass)
- data HsForAllTelescope pass
  - = HsForAllVis {
    - hsf_xvis :: XHsForAllVis pass
    - hsf_vis_bndrs :: [LHsTyVarBndr () pass]
    }
  - | HsForAllInvis {
    - hsf_xinvis :: XHsForAllInvis pass
    - hsf_invis_bndrs :: [LHsTyVarBndr Specificity pass]
    }
  - | XHsForAllTelescope !(XXHsForAllTelescope pass)
- type EpAnnForallVis = EpAnn (TokForall, TokRarrow)
- type EpAnnForallInvis = EpAnn (TokForall, EpToken ".")
- data HsTyVarBndr flag pass
  - = HsTvb {
    - tvb_ext :: XTyVarBndr pass
    - tvb_flag :: flag
    - tvb_var :: HsBndrVar pass
    - tvb_kind :: HsBndrKind pass
    }
  - | XTyVarBndr !(XXTyVarBndr pass)
- type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass)
- data AnnTyVarBndr = AnnTyVarBndr {
  - atv_opens :: [EpaLocation]
  - atv_closes :: [EpaLocation]
  - atv_tv :: EpToken "'"
  - atv_dcolon :: TokDcolon
  }
- data HsBndrKind pass
  - = HsBndrKind !(XBndrKind pass) (LHsKind pass)
  - | HsBndrNoKind !(XBndrNoKind pass)
  - | XBndrKind !(XXBndrKind pass)
- data HsBndrVar pass
  - = HsBndrVar !(XBndrVar pass) !(LIdP pass)
  - | HsBndrWildCard !(XBndrWildCard pass)
  - | XBndrVar !(XXBndrVar pass)
- data HsBndrVis pass
  - = HsBndrRequired !(XBndrRequired pass)
  - | HsBndrInvisible !(XBndrInvisible pass)
  - | XBndrVis !(XXBndrVis pass)
- isHsBndrInvisible :: HsBndrVis pass -> Bool
- data LHsQTyVars pass
  - = HsQTvs {
    - hsq_ext :: XHsQTvs pass
    - hsq_explicit :: [LHsTyVarBndr (HsBndrVis pass) pass]
    }
  - | XLHsQTyVars !(XXLHsQTyVars pass)
- data HsOuterTyVarBndrs flag pass
  - = HsOuterImplicit {
    - hso_ximplicit :: XHsOuterImplicit pass
    }
  - | HsOuterExplicit {
    - hso_xexplicit :: XHsOuterExplicit pass flag
    - hso_bndrs :: [LHsTyVarBndr flag (NoGhcTc pass)]
    }
  - | XHsOuterTyVarBndrs !(XXHsOuterTyVarBndrs pass)
- type HsOuterFamEqnTyVarBndrs = HsOuterTyVarBndrs ()
- type HsOuterSigTyVarBndrs = HsOuterTyVarBndrs Specificity
- data HsWildCardBndrs pass thing
  - = HsWC {
    - hswc_ext :: XHsWC pass thing
    - hswc_body :: thing
    }
  - | XHsWildCardBndrs !(XXHsWildCardBndrs pass thing)
- data HsPatSigType pass
  - = HsPS {
    - hsps_ext :: XHsPS pass
    - hsps_body :: LHsType pass
    }
  - | XHsPatSigType !(XXHsPatSigType pass)
- data HsPSRn = HsPSRn {
  - hsps_nwcs :: [Name]
  - hsps_imp_tvs :: [Name]
  }
- data HsTyPat pass
  - = HsTP {
    - hstp_ext :: XHsTP pass
    - hstp_body :: LHsType pass
    }
  - | XHsTyPat !(XXHsTyPat pass)
- data HsTyPatRn = HsTPRn {
  - hstp_nwcs :: [Name]
  - hstp_imp_tvs :: [Name]
  - hstp_exp_tvs :: [Name]
  }
- data HsTyPatRnBuilder = HsTPRnB {
  - hstpb_nwcs :: Bag Name
  - hstpb_imp_tvs :: Bag Name
  - hstpb_exp_tvs :: Bag Name
  }
- tpBuilderExplicitTV :: Name -> HsTyPatRnBuilder
- tpBuilderPatSig :: HsPSRn -> HsTyPatRnBuilder
- buildHsTyPatRn :: HsTyPatRnBuilder -> HsTyPatRn
- builderFromHsTyPatRn :: HsTyPatRn -> HsTyPatRnBuilder
- data HsSigType pass
  - = HsSig {
    - sig_ext :: XHsSig pass
    - sig_bndrs :: HsOuterSigTyVarBndrs pass
    - sig_body :: LHsType pass
    }
  - | XHsSigType !(XXHsSigType pass)
- type LHsSigType pass = XRec pass (HsSigType pass)
- type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass)
- type LHsWcType pass = HsWildCardBndrs pass (LHsType pass)
- data HsTupleSort
  - = HsUnboxedTuple
  - | HsBoxedOrConstraintTuple
- type HsContext pass = [LHsType pass]
- type LHsContext pass = XRec pass (HsContext pass)
- fromMaybeContext :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> HsContext (GhcPass p)
- data HsTyLit pass
  - = HsNumTy (XNumTy pass) Integer
  - | HsStrTy (XStrTy pass) FastString
  - | HsCharTy (XCharTy pass) Char
  - | XTyLit !(XXTyLit pass)
- newtype HsIPName = HsIPName FastString
- hsIPNameFS :: HsIPName -> FastString
- data HsArg p tm ty
  - = HsValArg !(XValArg p) tm
  - | HsTypeArg !(XTypeArg p) ty
  - | HsArgPar !(XArgPar p)
  - | XArg !(XXArg p)
- numVisibleArgs :: [HsArg p tm ty] -> Arity
- pprHsArgsApp :: forall id tm ty (p :: Pass). (OutputableBndr id, Outputable tm, Outputable ty) => id -> LexicalFixity -> [HsArg (GhcPass p) tm ty] -> SDoc
- type LHsTypeArg p = HsArg p (LHsType p) (LHsKind p)
- lhsTypeArgSrcSpan :: LHsTypeArg GhcPs -> SrcSpan
- class OutputableBndrFlag flag (p :: Pass)
- type LBangType pass = XRec pass (BangType pass)
- type BangType pass = HsType pass
- data HsSrcBang = HsSrcBang SourceText HsBang
- data HsImplBang
  - = HsLazy
  - | HsStrict Bool
  - | HsUnpack (Maybe Coercion)
- data SrcStrictness
  - = SrcLazy
  - | SrcStrict
  - | NoSrcStrict
- data SrcUnpackedness
  - = SrcUnpack
  - | SrcNoUnpack
  - | NoSrcUnpack
- getBangType :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p)
- getBangStrictness :: forall (p :: Pass). LHsType (GhcPass p) -> HsSrcBang
- data ConDeclField pass
  - = ConDeclField {
    - cd_fld_ext :: XConDeclField pass
    - cd_fld_names :: [LFieldOcc pass]
    - cd_fld_type :: LBangType pass
    - cd_fld_doc :: Maybe (LHsDoc pass)
    }
  - | XConDeclField !(XXConDeclField pass)
- type LConDeclField pass = XRec pass (ConDeclField pass)
- pprConDeclFields :: forall (p :: Pass). OutputableBndrId p => [LConDeclField (GhcPass p)] -> SDoc
- data HsConDetails tyarg arg rec
  - = PrefixCon [tyarg] [arg]
  - | RecCon rec
  - | InfixCon arg arg
- noTypeArgs :: [Void]
- data FieldOcc pass
  - = FieldOcc {
    - foExt :: XCFieldOcc pass
    - foLabel :: LIdP pass
    }
  - | XFieldOcc !(XXFieldOcc pass)
- type LFieldOcc pass = XRec pass (FieldOcc pass)
- mkFieldOcc :: LocatedN RdrName -> FieldOcc GhcPs
- fieldOccRdrName :: forall (p :: Pass). IsPass p => FieldOcc (GhcPass p) -> RdrName
- fieldOccLRdrName :: forall (p :: Pass). IsPass p => FieldOcc (GhcPass p) -> LocatedN RdrName
- data OpName
  - = NormalOp Name
  - | NegateOp
  - | UnboundOp RdrName
  - | RecFldOp (FieldOcc GhcRn)
- mkAnonWildCardTy :: EpToken "_" -> HsType GhcPs
- pprAnonWildCard :: SDoc
- hsOuterTyVarNames :: HsOuterTyVarBndrs flag GhcRn -> [Name]
- hsOuterExplicitBndrs :: forall flag (p :: Pass). HsOuterTyVarBndrs flag (GhcPass p) -> [LHsTyVarBndr flag (NoGhcTc (GhcPass p))]
- mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass
- mkHsOuterImplicit :: HsOuterTyVarBndrs flag GhcPs
- mkHsOuterExplicit :: EpAnnForallInvis -> [LHsTyVarBndr flag GhcPs] -> HsOuterTyVarBndrs flag GhcPs
- mkHsImplicitSigType :: LHsType GhcPs -> HsSigType GhcPs
- mkHsExplicitSigType :: EpAnnForallInvis -> [LHsTyVarBndr Specificity GhcPs] -> LHsType GhcPs -> HsSigType GhcPs
- mkHsWildCardBndrs :: thing -> HsWildCardBndrs GhcPs thing
- mkHsPatSigType :: EpAnnCO -> LHsType GhcPs -> HsPatSigType GhcPs
- mkHsTyPat :: LHsType GhcPs -> HsTyPat GhcPs
- mkEmptyWildCardBndrs :: thing -> HsWildCardBndrs GhcRn thing
- mkHsForAllVisTele :: forall (p :: Pass). EpAnnForallVis -> [LHsTyVarBndr () (GhcPass p)] -> HsForAllTelescope (GhcPass p)
- mkHsForAllInvisTele :: forall (p :: Pass). EpAnnForallInvis -> [LHsTyVarBndr Specificity (GhcPass p)] -> HsForAllTelescope (GhcPass p)
- mkHsQTvs :: [LHsTyVarBndr (HsBndrVis GhcPs) GhcPs] -> LHsQTyVars GhcPs
- hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass]
- emptyLHsQTvs :: LHsQTyVars GhcRn
- isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool
- hsBndrVar :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> HsBndrVar (GhcPass pass)
- hsBndrKind :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> HsBndrKind (GhcPass pass)
- hsTvbAllKinded :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> Bool
- hsScopedTvs :: LHsSigType GhcRn -> [Name]
- hsScopedKvs :: LHsKind GhcRn -> [Name]
- hsWcScopedTvs :: LHsSigWcType GhcRn -> [Name]
- dropWildCards :: LHsSigWcType pass -> LHsSigType pass
- hsTyVarLName :: forall flag (p :: Pass). HsTyVarBndr flag (GhcPass p) -> Maybe (LIdP (GhcPass p))
- hsTyVarName :: forall flag (p :: Pass). HsTyVarBndr flag (GhcPass p) -> Maybe (IdP (GhcPass p))
- hsAllLTyVarNames :: LHsQTyVars GhcRn -> [Name]
- hsLTyVarLocNames :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsQTyVars (GhcPass p) -> [LocatedN (IdP (GhcPass p))]
- hsLTyVarName :: forall flag (p :: Pass). LHsTyVarBndr flag (GhcPass p) -> Maybe (IdP (GhcPass p))
- hsLTyVarNames :: forall flag (p :: Pass). [LHsTyVarBndr flag (GhcPass p)] -> [IdP (GhcPass p)]
- hsForAllTelescopeNames :: forall (p :: Pass). HsForAllTelescope (GhcPass p) -> [IdP (GhcPass p)]
- hsLTyVarLocName :: forall (p :: Pass) flag. Anno (IdGhcP p) ~ SrcSpanAnnN => LHsTyVarBndr flag (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p)))
- hsExplicitLTyVarNames :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> [IdP (GhcPass p)]
- splitLHsInstDeclTy :: LHsSigType GhcRn -> ([Name], Maybe (LHsContext GhcRn), LHsType GhcRn)
- getLHsInstDeclHead :: forall (p :: Pass). LHsSigType (GhcPass p) -> LHsType (GhcPass p)
- getLHsInstDeclClass_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsSigType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p)))
- splitLHsPatSynTy :: forall (p :: Pass). LHsSigType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass (NoGhcTcPass p))], Maybe (LHsContext (GhcPass p)), [LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p))
- splitLHsForAllTyInvis :: forall (pass :: Pass). LHsType (GhcPass pass) -> ([LHsTyVarBndr Specificity (GhcPass pass)], LHsType (GhcPass pass))
- splitLHsForAllTyInvis_KP :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe [LHsTyVarBndr Specificity (GhcPass pass)], LHsType (GhcPass pass))
- splitLHsQualTy :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe (LHsContext (GhcPass pass)), LHsType (GhcPass pass))
- splitLHsSigmaTyInvis :: forall (p :: Pass). LHsType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p))
- splitLHsGadtTy :: LHsSigType GhcPs -> (HsOuterSigTyVarBndrs GhcPs, Maybe (LHsContext GhcPs), LHsType GhcPs)
- splitHsFunType :: forall (p :: Pass). LHsType (GhcPass p) -> (([EpToken "("], [EpToken ")"]), EpAnnComments, [HsScaled (GhcPass p) (LHsType (GhcPass p))], LHsType (GhcPass p))
- hsTyGetAppHead_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p)))
- mkHsOpTy :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => PromotionFlag -> LHsType (GhcPass p) -> LocatedN (IdP (GhcPass p)) -> LHsType (GhcPass p) -> HsType (GhcPass p)
- mkHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- mkHsAppTys :: forall (p :: Pass). LHsType (GhcPass p) -> [LHsType (GhcPass p)] -> LHsType (GhcPass p)
- mkHsAppKindTy :: forall (p :: Pass). XAppKindTy (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- ignoreParens :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p)
- hsSigWcType :: UnXRec p => LHsSigWcType p -> LHsType p
- hsPatSigType :: HsPatSigType pass -> LHsType pass
- hsTyKindSig :: forall (p :: Pass). LHsType (GhcPass p) -> Maybe (LHsKind (GhcPass p))
- setHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). flag -> HsTyVarBndr flag' (GhcPass pass) -> HsTyVarBndr flag (GhcPass pass)
- hsTyVarBndrFlag :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> flag
- updateHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). (flag -> flag') -> HsTyVarBndr flag (GhcPass pass) -> HsTyVarBndr flag' (GhcPass pass)
- pprHsType :: forall (p :: Pass). OutputableBndrId p => HsType (GhcPass p) -> SDoc
- pprHsForAll :: forall (p :: Pass). OutputableBndrId p => HsForAllTelescope (GhcPass p) -> Maybe (LHsContext (GhcPass p)) -> SDoc
- pprHsOuterFamEqnTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterFamEqnTyVarBndrs (GhcPass p) -> SDoc
- pprHsOuterSigTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterSigTyVarBndrs (GhcPass p) -> SDoc
- pprLHsContext :: forall (p :: Pass). OutputableBndrId p => Maybe (LHsContext (GhcPass p)) -> SDoc
- hsTypeNeedsParens :: forall (p :: Pass). PprPrec -> HsType (GhcPass p) -> Bool
- parenthesizeHsType :: forall (p :: Pass). PprPrec -> LHsType (GhcPass p) -> LHsType (GhcPass p)
- parenthesizeHsContext :: forall (p :: Pass). PprPrec -> LHsContext (GhcPass p) -> LHsContext (GhcPass p)

# Documentation

type Mult = Type Source #

Mult is a type alias for Type.

Mult must contain Type because multiplicity variables are mere type variables (of kind Multiplicity) in Haskell. So the simplest implementation is to make Mult be Type.

Multiplicities can be formed with: - One: GHC.Types.One (= oneDataCon) - Many: GHC.Types.Many (= manyDataCon) - Multiplication: GHC.Types.MultMul (= multMulTyCon)

So that Mult feels a bit more structured, we provide pattern synonyms and smart constructors for these.

data HsScaled pass a Source #

This is used in the syntax. In constructor declaration. It must keep the arrow representation.

Constructors

HsScaled (HsArrow pass) a |

#### Instances

Instances details

Data thing => Data (HsScaled GhcPs thing) Source # |

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) -> HsScaled GhcPs thing -> c (HsScaled GhcPs thing) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsScaled GhcPs thing) Source #

toConstr :: HsScaled GhcPs thing -> Constr Source #

dataTypeOf :: HsScaled GhcPs thing -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsScaled GhcPs thing)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsScaled GhcPs thing)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsScaled GhcPs thing -> HsScaled GhcPs thing Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsScaled GhcPs thing -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsScaled GhcPs thing -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsScaled GhcPs thing -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsScaled GhcPs thing -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsScaled GhcPs thing -> m (HsScaled GhcPs thing) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsScaled GhcPs thing -> m (HsScaled GhcPs thing) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsScaled GhcPs thing -> m (HsScaled GhcPs thing) Source #

Data thing => Data (HsScaled GhcRn thing) Source # |

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) -> HsScaled GhcRn thing -> c (HsScaled GhcRn thing) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsScaled GhcRn thing) Source #

toConstr :: HsScaled GhcRn thing -> Constr Source #

dataTypeOf :: HsScaled GhcRn thing -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsScaled GhcRn thing)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsScaled GhcRn thing)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsScaled GhcRn thing -> HsScaled GhcRn thing Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsScaled GhcRn thing -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsScaled GhcRn thing -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsScaled GhcRn thing -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsScaled GhcRn thing -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsScaled GhcRn thing -> m (HsScaled GhcRn thing) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsScaled GhcRn thing -> m (HsScaled GhcRn thing) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsScaled GhcRn thing -> m (HsScaled GhcRn thing) Source #

Data thing => Data (HsScaled GhcTc thing) Source # |

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) -> HsScaled GhcTc thing -> c (HsScaled GhcTc thing) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsScaled GhcTc thing) Source #

toConstr :: HsScaled GhcTc thing -> Constr Source #

dataTypeOf :: HsScaled GhcTc thing -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsScaled GhcTc thing)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsScaled GhcTc thing)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsScaled GhcTc thing -> HsScaled GhcTc thing Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsScaled GhcTc thing -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsScaled GhcTc thing -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsScaled GhcTc thing -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsScaled GhcTc thing -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsScaled GhcTc thing -> m (HsScaled GhcTc thing) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsScaled GhcTc thing -> m (HsScaled GhcTc thing) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsScaled GhcTc thing -> m (HsScaled GhcTc thing) Source #

hsMult :: HsScaled pass a -> HsArrow pass Source #

hsScaledThing :: HsScaled pass a -> a Source #

type HsArrow pass = HsArrowOf (LHsType pass) pass Source #

data HsArrowOf mult pass Source #

Denotes the type of arrows in the surface language

Constructors

HsUnrestrictedArrow !(XUnrestrictedArrow mult pass) | a -> b or a → b
HsLinearArrow !(XLinearArrow mult pass) | a %1 -> b or a %1 → b, or a ⊸ b
HsExplicitMult !(XExplicitMult mult pass) !mult | a %m -> b or a %m → b (very much including `a %Many -> b`! This is how the programmer wrote it). It is stored as an `HsType` so as to preserve the syntax as written in the program.
XArrow !(XXArrow mult pass) |

#### Instances

Instances details

Data (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs) Source # |

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) -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> c (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs) Source #

toConstr :: HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsExpr GhcPs)) GhcPs) Source #

Data (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn) Source # |

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) -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> c (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn) Source #

toConstr :: HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsExpr GhcRn)) GhcRn) Source #

Data (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc) Source # |

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) -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> c (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc) Source #

toConstr :: HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsExpr GhcTc)) GhcTc) Source #

Data (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source # |

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) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

toConstr :: HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

Data (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source # |

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) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

toConstr :: HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

Data (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source # |

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) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

toConstr :: HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

(Outputable mult, OutputableBndrId pass) => Outputable (HsArrowOf mult (GhcPass pass)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsArrowOf mult (GhcPass pass) -> SDoc Source #

arrowToHsType :: HsArrow GhcRn -> LHsType GhcRn Source #

expandHsArrow :: (LocatedN Name -> t GhcRn) -> HsArrowOf (LocatedA (t GhcRn)) GhcRn -> LocatedA (t GhcRn) Source #

Convert an arrow into its corresponding multiplicity. In essence this erases the information of whether the programmer wrote an explicit multiplicity or a shorthand.

data EpLinearArrow Source #

Constructors

EpPct1 !(EpToken "%1") !TokRarrow |
EpLolly !(EpToken "\8888") |

#### Instances

Instances details

Data EpLinearArrow Source # |

Instance details

Defined in GHC.Hs.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> EpLinearArrow -> c EpLinearArrow Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c EpLinearArrow Source #

toConstr :: EpLinearArrow -> Constr Source #

dataTypeOf :: EpLinearArrow -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c EpLinearArrow) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c EpLinearArrow) Source #

gmapT :: (forall b. Data b => b -> b) -> EpLinearArrow -> EpLinearArrow Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> EpLinearArrow -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> EpLinearArrow -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> EpLinearArrow -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> EpLinearArrow -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> EpLinearArrow -> m EpLinearArrow Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> EpLinearArrow -> m EpLinearArrow Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> EpLinearArrow -> m EpLinearArrow Source #

NoAnn EpLinearArrow Source # |
Instance details Defined in GHC.Hs.Type Methods noAnn :: EpLinearArrow Source #

hsLinear :: forall (p :: Pass) a. IsPass p => a -> HsScaled (GhcPass p) a Source #

hsUnrestricted :: forall (p :: Pass) a. IsPass p => a -> HsScaled (GhcPass p) a Source #

isUnrestricted :: HsArrow GhcRn -> Bool Source #

pprHsArrow :: forall mult (pass :: Pass). (Outputable mult, OutputableBndrId pass) => HsArrowOf mult (GhcPass pass) -> SDoc Source #

data HsType pass Source #

Haskell Type

Constructors

HsForAllTy |

Fields

- hst_xforall :: XForAllTy pass
- hst_tele :: HsForAllTelescope pass
- hst_body :: LHsType pass

HsQualTy |

Fields

- hst_xqual :: XQualTy pass
- hst_ctxt :: LHsContext pass
- hst_body :: LHsType pass

HsTyVar (XTyVar pass) PromotionFlag (LIdP pass) |
HsAppTy (XAppTy pass) (LHsType pass) (LHsType pass) |
HsAppKindTy (XAppKindTy pass) (LHsType pass) (LHsKind pass) |
HsFunTy (XFunTy pass) (HsArrow pass) (LHsType pass) (LHsType pass) |
HsListTy (XListTy pass) (LHsType pass) |
HsTupleTy (XTupleTy pass) HsTupleSort [LHsType pass] |
HsSumTy (XSumTy pass) [LHsType pass] |
HsOpTy (XOpTy pass) PromotionFlag (LHsType pass) (LIdP pass) (LHsType pass) |
HsParTy (XParTy pass) (LHsType pass) |

HsIParamTy (XIParamTy pass) (XRec pass HsIPName) (LHsType pass)

    (?x :: ty)

HsStarTy (XStarTy pass) Bool |

HsKindSig (XKindSig pass) (LHsType pass) (LHsKind pass)

    (ty :: kind)

HsSpliceTy (XSpliceTy pass) (HsUntypedSplice pass) |
HsDocTy (XDocTy pass) (LHsType pass) (LHsDoc pass) |
HsBangTy (XBangTy pass) HsBang (LHsType pass) |
HsRecTy (XRecTy pass) [LConDeclField pass] |
HsExplicitListTy (XExplicitListTy pass) PromotionFlag [LHsType pass] |
HsExplicitTupleTy (XExplicitTupleTy pass) PromotionFlag [LHsType pass] |
HsTyLit (XTyLit pass) (HsTyLit pass) |
HsWildCardTy (XWildCardTy pass) |
XHsType !(XXType pass) |

#### Instances

Instances details

Data (HsType GhcPs) Source # |

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) -> HsType GhcPs -> c (HsType GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsType GhcPs) Source #

toConstr :: HsType GhcPs -> Constr Source #

dataTypeOf :: HsType GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsType GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsType GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsType GhcPs -> HsType GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsType GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsType GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsType GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsType GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsType GhcPs -> m (HsType GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsType GhcPs -> m (HsType GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsType GhcPs -> m (HsType GhcPs) Source #

Data (HsType GhcRn) Source # |

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) -> HsType GhcRn -> c (HsType GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsType GhcRn) Source #

toConstr :: HsType GhcRn -> Constr Source #

dataTypeOf :: HsType GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsType GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsType GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsType GhcRn -> HsType GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsType GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsType GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsType GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsType GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsType GhcRn -> m (HsType GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsType GhcRn -> m (HsType GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsType GhcRn -> m (HsType GhcRn) Source #

Data (HsType GhcTc) Source # |

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) -> HsType GhcTc -> c (HsType GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsType GhcTc) Source #

toConstr :: HsType GhcTc -> Constr Source #

dataTypeOf :: HsType GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsType GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsType GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsType GhcTc -> HsType GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsType GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsType GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsType GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsType GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsType GhcTc -> m (HsType GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsType GhcTc -> m (HsType GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsType GhcTc -> m (HsType GhcTc) Source #

DisambTD (HsType GhcPs) Source # |

Instance details

Defined in GHC.Parser.PostProcess

Methods

mkHsAppTyHeadPV :: LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) Source #

mkHsAppTyPV :: LocatedA (HsType GhcPs) -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) Source #

mkHsAppKindTyPV :: LocatedA (HsType GhcPs) -> EpToken "@" -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) Source #

mkHsOpTyPV :: PromotionFlag -> LHsType GhcPs -> LocatedN RdrName -> LHsType GhcPs -> PV (LocatedA (HsType GhcPs)) Source #

mkUnpackednessPV :: Located UnpackednessPragma -> LocatedA (HsType GhcPs) -> PV (LocatedA (HsType GhcPs)) Source #

OutputableBndrId p => Outputable (HsType (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsType (GhcPass p) -> SDoc Source #
Data (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source # |

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) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

toConstr :: HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcPs)) GhcPs -> m (HsArrowOf (LocatedA (HsType GhcPs)) GhcPs) Source #

Data (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source # |

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) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

toConstr :: HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcRn)) GhcRn -> m (HsArrowOf (LocatedA (HsType GhcRn)) GhcRn) Source #

Data (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source # |

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) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

toConstr :: HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> Constr Source #

dataTypeOf :: HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArrowOf (LocatedA (HsType GhcTc)) GhcTc -> m (HsArrowOf (LocatedA (HsType GhcTc)) GhcTc) Source #

type Anno (BangType (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (BangType (GhcPass p)) = SrcSpanAnnA
type Anno (HsKind (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsKind (GhcPass p)) = SrcSpanAnnA
type Anno (HsType (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsType (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (HsType (GhcPass p))] Source # |
Instance details Defined in GHC.Hs.Type type Anno [LocatedA (HsType (GhcPass p))] = SrcSpanAnnC
type Anno (FamEqn p (LocatedA (HsType p))) Source # |
Instance details Defined in GHC.Hs.Decls type Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA

type HsCoreTy = Type Source #

type LHsType pass = XRec pass (HsType pass) Source #

Located Haskell Type

type HsKind pass = HsType pass Source #

Haskell Kind

type LHsKind pass = XRec pass (HsKind pass) Source #

Located Haskell Kind

data HsForAllTelescope pass Source #

The type variable binders in an `HsForAllTy`. See also `Note [Variable Specificity and Forall Visibility]` in GHC.Tc.Gen.HsType.

Constructors

HsForAllVis | A visible `forall` (e.g., `forall a -> {...}`). These do not have any notion of specificity, so we use `()` as a placeholder value.

Fields

- hsf_xvis :: XHsForAllVis pass
- hsf_vis_bndrs :: [LHsTyVarBndr () pass]

HsForAllInvis | An invisible `forall` (e.g., `forall a {b} c. {...}`), where each binder has a `Specificity`.

Fields

- hsf_xinvis :: XHsForAllInvis pass
- hsf_invis_bndrs :: [LHsTyVarBndr Specificity pass]

XHsForAllTelescope !(XXHsForAllTelescope pass) |

#### Instances

Instances details

Data (HsForAllTelescope GhcPs) Source # |

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) -> HsForAllTelescope GhcPs -> c (HsForAllTelescope GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsForAllTelescope GhcPs) Source #

toConstr :: HsForAllTelescope GhcPs -> Constr Source #

dataTypeOf :: HsForAllTelescope GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsForAllTelescope GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsForAllTelescope GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsForAllTelescope GhcPs -> HsForAllTelescope GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsForAllTelescope GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsForAllTelescope GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsForAllTelescope GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsForAllTelescope GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcPs -> m (HsForAllTelescope GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcPs -> m (HsForAllTelescope GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcPs -> m (HsForAllTelescope GhcPs) Source #

Data (HsForAllTelescope GhcRn) Source # |

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) -> HsForAllTelescope GhcRn -> c (HsForAllTelescope GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsForAllTelescope GhcRn) Source #

toConstr :: HsForAllTelescope GhcRn -> Constr Source #

dataTypeOf :: HsForAllTelescope GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsForAllTelescope GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsForAllTelescope GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsForAllTelescope GhcRn -> HsForAllTelescope GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsForAllTelescope GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsForAllTelescope GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsForAllTelescope GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsForAllTelescope GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcRn -> m (HsForAllTelescope GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcRn -> m (HsForAllTelescope GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcRn -> m (HsForAllTelescope GhcRn) Source #

Data (HsForAllTelescope GhcTc) Source # |

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) -> HsForAllTelescope GhcTc -> c (HsForAllTelescope GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsForAllTelescope GhcTc) Source #

toConstr :: HsForAllTelescope GhcTc -> Constr Source #

dataTypeOf :: HsForAllTelescope GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsForAllTelescope GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsForAllTelescope GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsForAllTelescope GhcTc -> HsForAllTelescope GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsForAllTelescope GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsForAllTelescope GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsForAllTelescope GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsForAllTelescope GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcTc -> m (HsForAllTelescope GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcTc -> m (HsForAllTelescope GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsForAllTelescope GhcTc -> m (HsForAllTelescope GhcTc) Source #

OutputableBndrId p => Outputable (HsForAllTelescope (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsForAllTelescope (GhcPass p) -> SDoc Source #

type EpAnnForallVis = EpAnn (TokForall, TokRarrow) Source #

type EpAnnForallInvis = EpAnn (TokForall, EpToken ".") Source #

data HsTyVarBndr flag pass Source #

Haskell Type Variable Binder See Note [Type variable binders]

Constructors

HsTvb |

Fields

- tvb_ext :: XTyVarBndr pass
- tvb_flag :: flag
- tvb_var :: HsBndrVar pass
- tvb_kind :: HsBndrKind pass

XTyVarBndr !(XXTyVarBndr pass) |

#### Instances

Instances details

Data flag => Data (HsTyVarBndr flag GhcPs) Source # |

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) -> HsTyVarBndr flag GhcPs -> c (HsTyVarBndr flag GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyVarBndr flag GhcPs) Source #

toConstr :: HsTyVarBndr flag GhcPs -> Constr Source #

dataTypeOf :: HsTyVarBndr flag GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyVarBndr flag GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyVarBndr flag GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyVarBndr flag GhcPs -> HsTyVarBndr flag GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyVarBndr flag GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyVarBndr flag GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyVarBndr flag GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyVarBndr flag GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcPs -> m (HsTyVarBndr flag GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcPs -> m (HsTyVarBndr flag GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcPs -> m (HsTyVarBndr flag GhcPs) Source #

Data flag => Data (HsTyVarBndr flag GhcRn) Source # |

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) -> HsTyVarBndr flag GhcRn -> c (HsTyVarBndr flag GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyVarBndr flag GhcRn) Source #

toConstr :: HsTyVarBndr flag GhcRn -> Constr Source #

dataTypeOf :: HsTyVarBndr flag GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyVarBndr flag GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyVarBndr flag GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyVarBndr flag GhcRn -> HsTyVarBndr flag GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyVarBndr flag GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyVarBndr flag GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyVarBndr flag GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyVarBndr flag GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcRn -> m (HsTyVarBndr flag GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcRn -> m (HsTyVarBndr flag GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcRn -> m (HsTyVarBndr flag GhcRn) Source #

Data flag => Data (HsTyVarBndr flag GhcTc) Source # |

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) -> HsTyVarBndr flag GhcTc -> c (HsTyVarBndr flag GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyVarBndr flag GhcTc) Source #

toConstr :: HsTyVarBndr flag GhcTc -> Constr Source #

dataTypeOf :: HsTyVarBndr flag GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyVarBndr flag GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyVarBndr flag GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyVarBndr flag GhcTc -> HsTyVarBndr flag GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyVarBndr flag GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyVarBndr flag GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyVarBndr flag GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyVarBndr flag GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcTc -> m (HsTyVarBndr flag GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcTc -> m (HsTyVarBndr flag GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyVarBndr flag GhcTc -> m (HsTyVarBndr flag GhcTc) Source #

(OutputableBndrId p, OutputableBndrFlag flag p) => Outputable (HsTyVarBndr flag (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsTyVarBndr flag (GhcPass p) -> SDoc Source #
type Anno (HsTyVarBndr _flag (GhcPass _1)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag (GhcPass _1)) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcPs) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcPs) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcRn) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcRn) = SrcSpanAnnA
type Anno (HsTyVarBndr _flag GhcTc) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsTyVarBndr _flag GhcTc) = SrcSpanAnnA

type LHsTyVarBndr flag pass = XRec pass (HsTyVarBndr flag pass) Source #

Located Haskell Type Variable Binder

data AnnTyVarBndr Source #

Constructors

AnnTyVarBndr |

Fields

- atv_opens :: [EpaLocation]
- atv_closes :: [EpaLocation]
- atv_tv :: EpToken "'"
- atv_dcolon :: TokDcolon

#### Instances

Instances details

Data AnnTyVarBndr Source # |

Instance details

Defined in GHC.Hs.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> AnnTyVarBndr -> c AnnTyVarBndr Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c AnnTyVarBndr Source #

toConstr :: AnnTyVarBndr -> Constr Source #

dataTypeOf :: AnnTyVarBndr -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c AnnTyVarBndr) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c AnnTyVarBndr) Source #

gmapT :: (forall b. Data b => b -> b) -> AnnTyVarBndr -> AnnTyVarBndr Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> AnnTyVarBndr -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> AnnTyVarBndr -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> AnnTyVarBndr -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> AnnTyVarBndr -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> AnnTyVarBndr -> m AnnTyVarBndr Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnTyVarBndr -> m AnnTyVarBndr Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> AnnTyVarBndr -> m AnnTyVarBndr Source #

NoAnn AnnTyVarBndr Source # |
Instance details Defined in GHC.Hs.Type Methods noAnn :: AnnTyVarBndr Source #

data HsBndrKind pass Source #

Constructors

HsBndrKind !(XBndrKind pass) (LHsKind pass) |
HsBndrNoKind !(XBndrNoKind pass) |
XBndrKind !(XXBndrKind pass) |

#### Instances

Instances details

Data (HsBndrKind GhcPs) Source # |

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) -> HsBndrKind GhcPs -> c (HsBndrKind GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrKind GhcPs) Source #

toConstr :: HsBndrKind GhcPs -> Constr Source #

dataTypeOf :: HsBndrKind GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrKind GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrKind GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrKind GhcPs -> HsBndrKind GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrKind GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrKind GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrKind GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrKind GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrKind GhcPs -> m (HsBndrKind GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrKind GhcPs -> m (HsBndrKind GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrKind GhcPs -> m (HsBndrKind GhcPs) Source #

Data (HsBndrKind GhcRn) Source # |

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) -> HsBndrKind GhcRn -> c (HsBndrKind GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrKind GhcRn) Source #

toConstr :: HsBndrKind GhcRn -> Constr Source #

dataTypeOf :: HsBndrKind GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrKind GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrKind GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrKind GhcRn -> HsBndrKind GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrKind GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrKind GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrKind GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrKind GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrKind GhcRn -> m (HsBndrKind GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrKind GhcRn -> m (HsBndrKind GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrKind GhcRn -> m (HsBndrKind GhcRn) Source #

Data (HsBndrKind GhcTc) Source # |

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) -> HsBndrKind GhcTc -> c (HsBndrKind GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrKind GhcTc) Source #

toConstr :: HsBndrKind GhcTc -> Constr Source #

dataTypeOf :: HsBndrKind GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrKind GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrKind GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrKind GhcTc -> HsBndrKind GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrKind GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrKind GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrKind GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrKind GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrKind GhcTc -> m (HsBndrKind GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrKind GhcTc -> m (HsBndrKind GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrKind GhcTc -> m (HsBndrKind GhcTc) Source #

data HsBndrVar pass Source #

Constructors

HsBndrVar !(XBndrVar pass) !(LIdP pass) |
HsBndrWildCard !(XBndrWildCard pass) |
XBndrVar !(XXBndrVar pass) |

#### Instances

Instances details

Data (HsBndrVar GhcPs) Source # |

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) -> HsBndrVar GhcPs -> c (HsBndrVar GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrVar GhcPs) Source #

toConstr :: HsBndrVar GhcPs -> Constr Source #

dataTypeOf :: HsBndrVar GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrVar GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrVar GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrVar GhcPs -> HsBndrVar GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVar GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVar GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrVar GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrVar GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrVar GhcPs -> m (HsBndrVar GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVar GhcPs -> m (HsBndrVar GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVar GhcPs -> m (HsBndrVar GhcPs) Source #

Data (HsBndrVar GhcRn) Source # |

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) -> HsBndrVar GhcRn -> c (HsBndrVar GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrVar GhcRn) Source #

toConstr :: HsBndrVar GhcRn -> Constr Source #

dataTypeOf :: HsBndrVar GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrVar GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrVar GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrVar GhcRn -> HsBndrVar GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVar GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVar GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrVar GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrVar GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrVar GhcRn -> m (HsBndrVar GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVar GhcRn -> m (HsBndrVar GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVar GhcRn -> m (HsBndrVar GhcRn) Source #

Data (HsBndrVar GhcTc) Source # |

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) -> HsBndrVar GhcTc -> c (HsBndrVar GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrVar GhcTc) Source #

toConstr :: HsBndrVar GhcTc -> Constr Source #

dataTypeOf :: HsBndrVar GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrVar GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrVar GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrVar GhcTc -> HsBndrVar GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVar GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVar GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrVar GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrVar GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrVar GhcTc -> m (HsBndrVar GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVar GhcTc -> m (HsBndrVar GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVar GhcTc -> m (HsBndrVar GhcTc) Source #

OutputableBndrId p => Outputable (HsBndrVar (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsBndrVar (GhcPass p) -> SDoc Source #

data HsBndrVis pass Source #

Constructors

HsBndrRequired !(XBndrRequired pass) |
HsBndrInvisible !(XBndrInvisible pass) |
XBndrVis !(XXBndrVis pass) |

#### Instances

Instances details

Data (HsBndrVis GhcPs) Source # |

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) -> HsBndrVis GhcPs -> c (HsBndrVis GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrVis GhcPs) Source #

toConstr :: HsBndrVis GhcPs -> Constr Source #

dataTypeOf :: HsBndrVis GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrVis GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrVis GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrVis GhcPs -> HsBndrVis GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVis GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVis GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrVis GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrVis GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrVis GhcPs -> m (HsBndrVis GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVis GhcPs -> m (HsBndrVis GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVis GhcPs -> m (HsBndrVis GhcPs) Source #

Data (HsBndrVis GhcRn) Source # |

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) -> HsBndrVis GhcRn -> c (HsBndrVis GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrVis GhcRn) Source #

toConstr :: HsBndrVis GhcRn -> Constr Source #

dataTypeOf :: HsBndrVis GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrVis GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrVis GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrVis GhcRn -> HsBndrVis GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVis GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVis GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrVis GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrVis GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrVis GhcRn -> m (HsBndrVis GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVis GhcRn -> m (HsBndrVis GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVis GhcRn -> m (HsBndrVis GhcRn) Source #

Data (HsBndrVis GhcTc) Source # |

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) -> HsBndrVis GhcTc -> c (HsBndrVis GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsBndrVis GhcTc) Source #

toConstr :: HsBndrVis GhcTc -> Constr Source #

dataTypeOf :: HsBndrVis GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsBndrVis GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsBndrVis GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsBndrVis GhcTc -> HsBndrVis GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVis GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsBndrVis GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsBndrVis GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsBndrVis GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsBndrVis GhcTc -> m (HsBndrVis GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVis GhcTc -> m (HsBndrVis GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsBndrVis GhcTc -> m (HsBndrVis GhcTc) Source #

OutputableBndrFlag (HsBndrVis (GhcPass p')) p Source # |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr (HsBndrVis (GhcPass p')) (GhcPass p) -> SDoc

isHsBndrInvisible :: HsBndrVis pass -> Bool Source #

data LHsQTyVars pass Source #

Located Haskell Quantified Type Variables

Constructors

HsQTvs |

Fields

- hsq_ext :: XHsQTvs pass
- hsq_explicit :: [LHsTyVarBndr (HsBndrVis pass) pass]

XLHsQTyVars !(XXLHsQTyVars pass) |

#### Instances

Instances details

Data (LHsQTyVars GhcPs) Source # |

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) -> LHsQTyVars GhcPs -> c (LHsQTyVars GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LHsQTyVars GhcPs) Source #

toConstr :: LHsQTyVars GhcPs -> Constr Source #

dataTypeOf :: LHsQTyVars GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (LHsQTyVars GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LHsQTyVars GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> LHsQTyVars GhcPs -> LHsQTyVars GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LHsQTyVars GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LHsQTyVars GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> LHsQTyVars GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LHsQTyVars GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcPs -> m (LHsQTyVars GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcPs -> m (LHsQTyVars GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcPs -> m (LHsQTyVars GhcPs) Source #

Data (LHsQTyVars GhcRn) Source # |

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) -> LHsQTyVars GhcRn -> c (LHsQTyVars GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LHsQTyVars GhcRn) Source #

toConstr :: LHsQTyVars GhcRn -> Constr Source #

dataTypeOf :: LHsQTyVars GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (LHsQTyVars GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LHsQTyVars GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> LHsQTyVars GhcRn -> LHsQTyVars GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LHsQTyVars GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LHsQTyVars GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> LHsQTyVars GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LHsQTyVars GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcRn -> m (LHsQTyVars GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcRn -> m (LHsQTyVars GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcRn -> m (LHsQTyVars GhcRn) Source #

Data (LHsQTyVars GhcTc) Source # |

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) -> LHsQTyVars GhcTc -> c (LHsQTyVars GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (LHsQTyVars GhcTc) Source #

toConstr :: LHsQTyVars GhcTc -> Constr Source #

dataTypeOf :: LHsQTyVars GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (LHsQTyVars GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (LHsQTyVars GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> LHsQTyVars GhcTc -> LHsQTyVars GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> LHsQTyVars GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> LHsQTyVars GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> LHsQTyVars GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> LHsQTyVars GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcTc -> m (LHsQTyVars GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcTc -> m (LHsQTyVars GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> LHsQTyVars GhcTc -> m (LHsQTyVars GhcTc) Source #

OutputableBndrId p => Outputable (LHsQTyVars (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: LHsQTyVars (GhcPass p) -> SDoc Source #

data HsOuterTyVarBndrs flag pass Source #

The outermost type variables in a type that obeys the `forall`-or-nothing rule. See `Note [forall-or-nothing rule]`.

Constructors

HsOuterImplicit | Implicit forall, e.g., `f :: a -> b -> b`

Fields

- hso_ximplicit :: XHsOuterImplicit pass

HsOuterExplicit | Explicit forall, e.g., `f :: forall a b. a -> b -> b`

Fields

- hso_xexplicit :: XHsOuterExplicit pass flag
- hso_bndrs :: [LHsTyVarBndr flag (NoGhcTc pass)]

XHsOuterTyVarBndrs !(XXHsOuterTyVarBndrs pass) |

#### Instances

Instances details

Data flag => Data (HsOuterTyVarBndrs flag GhcPs) Source # |

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) -> HsOuterTyVarBndrs flag GhcPs -> c (HsOuterTyVarBndrs flag GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsOuterTyVarBndrs flag GhcPs) Source #

toConstr :: HsOuterTyVarBndrs flag GhcPs -> Constr Source #

dataTypeOf :: HsOuterTyVarBndrs flag GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsOuterTyVarBndrs flag GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsOuterTyVarBndrs flag GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsOuterTyVarBndrs flag GhcPs -> HsOuterTyVarBndrs flag GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsOuterTyVarBndrs flag GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsOuterTyVarBndrs flag GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsOuterTyVarBndrs flag GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsOuterTyVarBndrs flag GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcPs -> m (HsOuterTyVarBndrs flag GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcPs -> m (HsOuterTyVarBndrs flag GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcPs -> m (HsOuterTyVarBndrs flag GhcPs) Source #

Data flag => Data (HsOuterTyVarBndrs flag GhcRn) Source # |

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) -> HsOuterTyVarBndrs flag GhcRn -> c (HsOuterTyVarBndrs flag GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsOuterTyVarBndrs flag GhcRn) Source #

toConstr :: HsOuterTyVarBndrs flag GhcRn -> Constr Source #

dataTypeOf :: HsOuterTyVarBndrs flag GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsOuterTyVarBndrs flag GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsOuterTyVarBndrs flag GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsOuterTyVarBndrs flag GhcRn -> HsOuterTyVarBndrs flag GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsOuterTyVarBndrs flag GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsOuterTyVarBndrs flag GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsOuterTyVarBndrs flag GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsOuterTyVarBndrs flag GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcRn -> m (HsOuterTyVarBndrs flag GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcRn -> m (HsOuterTyVarBndrs flag GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcRn -> m (HsOuterTyVarBndrs flag GhcRn) Source #

Data flag => Data (HsOuterTyVarBndrs flag GhcTc) Source # |

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) -> HsOuterTyVarBndrs flag GhcTc -> c (HsOuterTyVarBndrs flag GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsOuterTyVarBndrs flag GhcTc) Source #

toConstr :: HsOuterTyVarBndrs flag GhcTc -> Constr Source #

dataTypeOf :: HsOuterTyVarBndrs flag GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsOuterTyVarBndrs flag GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsOuterTyVarBndrs flag GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsOuterTyVarBndrs flag GhcTc -> HsOuterTyVarBndrs flag GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsOuterTyVarBndrs flag GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsOuterTyVarBndrs flag GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsOuterTyVarBndrs flag GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsOuterTyVarBndrs flag GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcTc -> m (HsOuterTyVarBndrs flag GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcTc -> m (HsOuterTyVarBndrs flag GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsOuterTyVarBndrs flag GhcTc -> m (HsOuterTyVarBndrs flag GhcTc) Source #

(OutputableBndrFlag flag p, OutputableBndrFlag flag (NoGhcTcPass p), OutputableBndrId p) => Outputable (HsOuterTyVarBndrs flag (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsOuterTyVarBndrs flag (GhcPass p) -> SDoc Source #
type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsOuterTyVarBndrs _1 (GhcPass _2)) = SrcSpanAnnA

type HsOuterFamEqnTyVarBndrs = HsOuterTyVarBndrs () Source #

Used for type-family instance equations, e.g.,

    type instance forall a. F [a] = Tree a

The notion of specificity is irrelevant in type family equations, so we use `()` for the `HsOuterTyVarBndrs` `flag`.

type HsOuterSigTyVarBndrs = HsOuterTyVarBndrs Specificity Source #

Used for signatures, e.g.,

    f :: forall a {b}. blah

We use `Specificity` for the `HsOuterTyVarBndrs` `flag` to allow distinguishing between specified and inferred type variables.

data HsWildCardBndrs pass thing Source #

Haskell Wildcard Binders

Constructors

HsWC |

Fields

- hswc_ext :: XHsWC pass thing
- hswc_body :: thing

XHsWildCardBndrs !(XXHsWildCardBndrs pass thing) |

#### Instances

Instances details

Data thing => Data (HsWildCardBndrs GhcPs thing) Source # |

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) -> HsWildCardBndrs GhcPs thing -> c (HsWildCardBndrs GhcPs thing) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsWildCardBndrs GhcPs thing) Source #

toConstr :: HsWildCardBndrs GhcPs thing -> Constr Source #

dataTypeOf :: HsWildCardBndrs GhcPs thing -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsWildCardBndrs GhcPs thing)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsWildCardBndrs GhcPs thing)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsWildCardBndrs GhcPs thing -> HsWildCardBndrs GhcPs thing Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsWildCardBndrs GhcPs thing -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsWildCardBndrs GhcPs thing -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsWildCardBndrs GhcPs thing -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsWildCardBndrs GhcPs thing -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcPs thing -> m (HsWildCardBndrs GhcPs thing) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcPs thing -> m (HsWildCardBndrs GhcPs thing) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcPs thing -> m (HsWildCardBndrs GhcPs thing) Source #

Data thing => Data (HsWildCardBndrs GhcRn thing) Source # |

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) -> HsWildCardBndrs GhcRn thing -> c (HsWildCardBndrs GhcRn thing) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsWildCardBndrs GhcRn thing) Source #

toConstr :: HsWildCardBndrs GhcRn thing -> Constr Source #

dataTypeOf :: HsWildCardBndrs GhcRn thing -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsWildCardBndrs GhcRn thing)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsWildCardBndrs GhcRn thing)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsWildCardBndrs GhcRn thing -> HsWildCardBndrs GhcRn thing Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsWildCardBndrs GhcRn thing -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsWildCardBndrs GhcRn thing -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsWildCardBndrs GhcRn thing -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsWildCardBndrs GhcRn thing -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcRn thing -> m (HsWildCardBndrs GhcRn thing) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcRn thing -> m (HsWildCardBndrs GhcRn thing) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcRn thing -> m (HsWildCardBndrs GhcRn thing) Source #

Data thing => Data (HsWildCardBndrs GhcTc thing) Source # |

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) -> HsWildCardBndrs GhcTc thing -> c (HsWildCardBndrs GhcTc thing) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsWildCardBndrs GhcTc thing) Source #

toConstr :: HsWildCardBndrs GhcTc thing -> Constr Source #

dataTypeOf :: HsWildCardBndrs GhcTc thing -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsWildCardBndrs GhcTc thing)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsWildCardBndrs GhcTc thing)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsWildCardBndrs GhcTc thing -> HsWildCardBndrs GhcTc thing Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsWildCardBndrs GhcTc thing -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsWildCardBndrs GhcTc thing -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsWildCardBndrs GhcTc thing -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsWildCardBndrs GhcTc thing -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcTc thing -> m (HsWildCardBndrs GhcTc thing) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcTc thing -> m (HsWildCardBndrs GhcTc thing) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsWildCardBndrs GhcTc thing -> m (HsWildCardBndrs GhcTc thing) Source #

Outputable thing => Outputable (HsWildCardBndrs (GhcPass p) thing) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsWildCardBndrs (GhcPass p) thing -> SDoc Source #

data HsPatSigType pass Source #

Types that can appear in pattern signatures, as well as the signatures for term-level binders in RULES. See `Note [Pattern signature binders and scoping]`.

This is very similar to `HsSigWcType`, but with slightly different semantics: see `Note [HsType binders]`. See also `Note [The wildcard story for types]`.

Constructors

HsPS |

Fields

- hsps_ext :: XHsPS pass

  After renamer: `HsPSRn`

- hsps_body :: LHsType pass

  Main payload (the type itself)

XHsPatSigType !(XXHsPatSigType pass) |

#### Instances

Instances details

Data (HsPatSigType GhcPs) Source # |

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) -> HsPatSigType GhcPs -> c (HsPatSigType GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsPatSigType GhcPs) Source #

toConstr :: HsPatSigType GhcPs -> Constr Source #

dataTypeOf :: HsPatSigType GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsPatSigType GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsPatSigType GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsPatSigType GhcPs -> HsPatSigType GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPatSigType GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPatSigType GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsPatSigType GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsPatSigType GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsPatSigType GhcPs -> m (HsPatSigType GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatSigType GhcPs -> m (HsPatSigType GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatSigType GhcPs -> m (HsPatSigType GhcPs) Source #

Data (HsPatSigType GhcRn) Source # |

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) -> HsPatSigType GhcRn -> c (HsPatSigType GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsPatSigType GhcRn) Source #

toConstr :: HsPatSigType GhcRn -> Constr Source #

dataTypeOf :: HsPatSigType GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsPatSigType GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsPatSigType GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsPatSigType GhcRn -> HsPatSigType GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPatSigType GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPatSigType GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsPatSigType GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsPatSigType GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsPatSigType GhcRn -> m (HsPatSigType GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatSigType GhcRn -> m (HsPatSigType GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatSigType GhcRn -> m (HsPatSigType GhcRn) Source #

Data (HsPatSigType GhcTc) Source # |

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) -> HsPatSigType GhcTc -> c (HsPatSigType GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsPatSigType GhcTc) Source #

toConstr :: HsPatSigType GhcTc -> Constr Source #

dataTypeOf :: HsPatSigType GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsPatSigType GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsPatSigType GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsPatSigType GhcTc -> HsPatSigType GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPatSigType GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPatSigType GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsPatSigType GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsPatSigType GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsPatSigType GhcTc -> m (HsPatSigType GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatSigType GhcTc -> m (HsPatSigType GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPatSigType GhcTc -> m (HsPatSigType GhcTc) Source #

OutputableBndrId p => Outputable (HsPatSigType (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsPatSigType (GhcPass p) -> SDoc Source #

data HsPSRn Source #

The extension field for `HsPatSigType`, which is only used in the renamer onwards. See `Note [Pattern signature binders and scoping]`.

Constructors

HsPSRn |

Fields

- hsps_nwcs :: [Name]

  Wildcard names

- hsps_imp_tvs :: [Name]

  Implicitly bound variable names

#### Instances

Instances details

Data HsPSRn Source # |

Instance details

Defined in GHC.Hs.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsPSRn -> c HsPSRn Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsPSRn Source #

toConstr :: HsPSRn -> Constr Source #

dataTypeOf :: HsPSRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsPSRn) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsPSRn) Source #

gmapT :: (forall b. Data b => b -> b) -> HsPSRn -> HsPSRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsPSRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsPSRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsPSRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsPSRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsPSRn -> m HsPSRn Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPSRn -> m HsPSRn Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsPSRn -> m HsPSRn Source #

data HsTyPat pass Source #

Constructors

HsTP |

Fields

- hstp_ext :: XHsTP pass

  After renamer: `HsTyPatRn`

- hstp_body :: LHsType pass

  Main payload (the type itself)

XHsTyPat !(XXHsTyPat pass) |

#### Instances

Instances details

Data (HsTyPat GhcPs) Source # |

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) -> HsTyPat GhcPs -> c (HsTyPat GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyPat GhcPs) Source #

toConstr :: HsTyPat GhcPs -> Constr Source #

dataTypeOf :: HsTyPat GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyPat GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyPat GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyPat GhcPs -> HsTyPat GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPat GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPat GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyPat GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyPat GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyPat GhcPs -> m (HsTyPat GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPat GhcPs -> m (HsTyPat GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPat GhcPs -> m (HsTyPat GhcPs) Source #

Data (HsTyPat GhcRn) Source # |

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) -> HsTyPat GhcRn -> c (HsTyPat GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyPat GhcRn) Source #

toConstr :: HsTyPat GhcRn -> Constr Source #

dataTypeOf :: HsTyPat GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyPat GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyPat GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyPat GhcRn -> HsTyPat GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPat GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPat GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyPat GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyPat GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyPat GhcRn -> m (HsTyPat GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPat GhcRn -> m (HsTyPat GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPat GhcRn -> m (HsTyPat GhcRn) Source #

Data (HsTyPat GhcTc) Source # |

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) -> HsTyPat GhcTc -> c (HsTyPat GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyPat GhcTc) Source #

toConstr :: HsTyPat GhcTc -> Constr Source #

dataTypeOf :: HsTyPat GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyPat GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyPat GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyPat GhcTc -> HsTyPat GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPat GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPat GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyPat GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyPat GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyPat GhcTc -> m (HsTyPat GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPat GhcTc -> m (HsTyPat GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPat GhcTc -> m (HsTyPat GhcTc) Source #

OutputableBndrId p => Outputable (HsTyPat (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsTyPat (GhcPass p) -> SDoc Source #

data HsTyPatRn Source #

Constructors

HsTPRn |

Fields

- hstp_nwcs :: [Name]

  Wildcard names

- hstp_imp_tvs :: [Name]

  Implicitly bound variable names

- hstp_exp_tvs :: [Name]

  Explicitly bound variable names

#### Instances

Instances details

Data HsTyPatRn Source # |

Instance details

Defined in GHC.Hs.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsTyPatRn -> c HsTyPatRn Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsTyPatRn Source #

toConstr :: HsTyPatRn -> Constr Source #

dataTypeOf :: HsTyPatRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsTyPatRn) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsTyPatRn) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyPatRn -> HsTyPatRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPatRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyPatRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyPatRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyPatRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyPatRn -> m HsTyPatRn Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPatRn -> m HsTyPatRn Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyPatRn -> m HsTyPatRn Source #

data HsTyPatRnBuilder Source #

A variant of HsTyPatRn that uses Bags for efficient concatenation. See Note [Implicit and explicit type variable binders] in GHC.Rename.Pat

Constructors

HsTPRnB |

Fields

- hstpb_nwcs :: Bag Name
- hstpb_imp_tvs :: Bag Name
- hstpb_exp_tvs :: Bag Name

#### Instances

Instances details

Monoid HsTyPatRnBuilder Source # |
Instance details Defined in GHC.Hs.Type Methods mempty :: HsTyPatRnBuilder Source # mappend :: HsTyPatRnBuilder -> HsTyPatRnBuilder -> HsTyPatRnBuilder Source # mconcat :: [HsTyPatRnBuilder] -> HsTyPatRnBuilder Source #
Semigroup HsTyPatRnBuilder Source # |
Instance details Defined in GHC.Hs.Type Methods (<>) :: HsTyPatRnBuilder -> HsTyPatRnBuilder -> HsTyPatRnBuilder Source # sconcat :: NonEmpty HsTyPatRnBuilder -> HsTyPatRnBuilder Source # stimes :: Integral b => b -> HsTyPatRnBuilder -> HsTyPatRnBuilder Source #

tpBuilderExplicitTV :: Name -> HsTyPatRnBuilder Source #

tpBuilderPatSig :: HsPSRn -> HsTyPatRnBuilder Source #

buildHsTyPatRn :: HsTyPatRnBuilder -> HsTyPatRn Source #

builderFromHsTyPatRn :: HsTyPatRn -> HsTyPatRnBuilder Source #

data HsSigType pass Source #

A type signature that obeys the `forall`-or-nothing rule. In other words, an `LHsType` that uses an `HsOuterSigTyVarBndrs` to represent its outermost type variable quantification. See `Note [Representing type signatures]`.

Constructors

HsSig |

Fields

- sig_ext :: XHsSig pass
- sig_bndrs :: HsOuterSigTyVarBndrs pass
- sig_body :: LHsType pass

XHsSigType !(XXHsSigType pass) |

#### Instances

Instances details

Data (HsSigType GhcPs) Source # |

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) -> HsSigType GhcPs -> c (HsSigType GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsSigType GhcPs) Source #

toConstr :: HsSigType GhcPs -> Constr Source #

dataTypeOf :: HsSigType GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsSigType GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsSigType GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsSigType GhcPs -> HsSigType GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsSigType GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsSigType GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsSigType GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsSigType GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsSigType GhcPs -> m (HsSigType GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSigType GhcPs -> m (HsSigType GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSigType GhcPs -> m (HsSigType GhcPs) Source #

Data (HsSigType GhcRn) Source # |

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) -> HsSigType GhcRn -> c (HsSigType GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsSigType GhcRn) Source #

toConstr :: HsSigType GhcRn -> Constr Source #

dataTypeOf :: HsSigType GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsSigType GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsSigType GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsSigType GhcRn -> HsSigType GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsSigType GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsSigType GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsSigType GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsSigType GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsSigType GhcRn -> m (HsSigType GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSigType GhcRn -> m (HsSigType GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSigType GhcRn -> m (HsSigType GhcRn) Source #

Data (HsSigType GhcTc) Source # |

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) -> HsSigType GhcTc -> c (HsSigType GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsSigType GhcTc) Source #

toConstr :: HsSigType GhcTc -> Constr Source #

dataTypeOf :: HsSigType GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsSigType GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsSigType GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsSigType GhcTc -> HsSigType GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsSigType GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsSigType GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsSigType GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsSigType GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsSigType GhcTc -> m (HsSigType GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSigType GhcTc -> m (HsSigType GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsSigType GhcTc -> m (HsSigType GhcTc) Source #

OutputableBndrId p => Outputable (HsSigType (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsSigType (GhcPass p) -> SDoc Source #
type Anno (HsSigType (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (HsSigType (GhcPass p)) = SrcSpanAnnA

type LHsSigType pass = XRec pass (HsSigType pass) Source #

Located Haskell Signature Type

type LHsSigWcType pass = HsWildCardBndrs pass (LHsSigType pass) Source #

Located Haskell Signature Wildcard Type

type LHsWcType pass = HsWildCardBndrs pass (LHsType pass) Source #

Located Haskell Wildcard Type

data HsTupleSort Source #

Haskell Tuple Sort

Constructors

HsUnboxedTuple |
HsBoxedOrConstraintTuple |

#### Instances

Instances details

Data HsTupleSort Source # |

Instance details

Defined in Language.Haskell.Syntax.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsTupleSort -> c HsTupleSort Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsTupleSort Source #

toConstr :: HsTupleSort -> Constr Source #

dataTypeOf :: HsTupleSort -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsTupleSort) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsTupleSort) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTupleSort -> HsTupleSort Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTupleSort -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTupleSort -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTupleSort -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTupleSort -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTupleSort -> m HsTupleSort Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTupleSort -> m HsTupleSort Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTupleSort -> m HsTupleSort Source #

type HsContext pass = [LHsType pass] Source #

Haskell Context

type LHsContext pass = XRec pass (HsContext pass) Source #

Located Haskell Context

fromMaybeContext :: forall (p :: Pass). Maybe (LHsContext (GhcPass p)) -> HsContext (GhcPass p) Source #

data HsTyLit pass Source #

Haskell Type Literal

Constructors

HsNumTy (XNumTy pass) Integer |
HsStrTy (XStrTy pass) FastString |
HsCharTy (XCharTy pass) Char |
XTyLit !(XXTyLit pass) |

#### Instances

Instances details

Data (HsTyLit GhcPs) Source # |

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) -> HsTyLit GhcPs -> c (HsTyLit GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyLit GhcPs) Source #

toConstr :: HsTyLit GhcPs -> Constr Source #

dataTypeOf :: HsTyLit GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyLit GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyLit GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyLit GhcPs -> HsTyLit GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyLit GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyLit GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyLit GhcPs -> m (HsTyLit GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit GhcPs -> m (HsTyLit GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit GhcPs -> m (HsTyLit GhcPs) Source #

Data (HsTyLit GhcRn) Source # |

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) -> HsTyLit GhcRn -> c (HsTyLit GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyLit GhcRn) Source #

toConstr :: HsTyLit GhcRn -> Constr Source #

dataTypeOf :: HsTyLit GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyLit GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyLit GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyLit GhcRn -> HsTyLit GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyLit GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyLit GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyLit GhcRn -> m (HsTyLit GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit GhcRn -> m (HsTyLit GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit GhcRn -> m (HsTyLit GhcRn) Source #

Data (HsTyLit GhcTc) Source # |

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) -> HsTyLit GhcTc -> c (HsTyLit GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsTyLit GhcTc) Source #

toConstr :: HsTyLit GhcTc -> Constr Source #

dataTypeOf :: HsTyLit GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsTyLit GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsTyLit GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsTyLit GhcTc -> HsTyLit GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsTyLit GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsTyLit GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsTyLit GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsTyLit GhcTc -> m (HsTyLit GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit GhcTc -> m (HsTyLit GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsTyLit GhcTc -> m (HsTyLit GhcTc) Source #

OutputableBndrId p => Outputable (HsTyLit (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsTyLit (GhcPass p) -> SDoc Source #

newtype HsIPName Source #

These names are used early on to store the names of implicit parameters. They completely disappear after type-checking.

Constructors

HsIPName FastString |

#### Instances

Instances details

Data HsIPName Source # |

Instance details

Defined in Language.Haskell.Syntax.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsIPName -> c HsIPName Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsIPName Source #

toConstr :: HsIPName -> Constr Source #

dataTypeOf :: HsIPName -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsIPName) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsIPName) Source #

gmapT :: (forall b. Data b => b -> b) -> HsIPName -> HsIPName Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsIPName -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsIPName -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsIPName -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsIPName -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsIPName -> m HsIPName Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsIPName -> m HsIPName Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsIPName -> m HsIPName Source #

Outputable HsIPName Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsIPName -> SDoc Source #
OutputableBndr HsIPName Source # |
Instance details Defined in GHC.Hs.Type Methods pprBndr :: BindingSite -> HsIPName -> SDoc Source # pprPrefixOcc :: HsIPName -> SDoc Source # pprInfixOcc :: HsIPName -> SDoc Source # bndrIsJoin_maybe :: HsIPName -> JoinPointHood Source #
Eq HsIPName Source # |
Instance details Defined in Language.Haskell.Syntax.Type Methods (==) :: HsIPName -> HsIPName -> Bool Source # (/=) :: HsIPName -> HsIPName -> Bool Source #
type Anno HsIPName Source # |
Instance details Defined in GHC.Hs.Type type Anno HsIPName = EpAnnCO

hsIPNameFS :: HsIPName -> FastString Source #

data HsArg p tm ty Source #

Arguments in an expression/type after splitting

Constructors

HsValArg !(XValArg p) tm |
HsTypeArg !(XTypeArg p) ty |
HsArgPar !(XArgPar p) |
XArg !(XXArg p) |

#### Instances

Instances details

(Data a, Data b) => Data (HsArg GhcPs a b) Source # |

Instance details

Defined in GHC.Hs.Instances

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> HsArg GhcPs a b -> c (HsArg GhcPs a b) Source #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArg GhcPs a b) Source #

toConstr :: HsArg GhcPs a b -> Constr Source #

dataTypeOf :: HsArg GhcPs a b -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArg GhcPs a b)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArg GhcPs a b)) Source #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> HsArg GhcPs a b -> HsArg GhcPs a b Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArg GhcPs a b -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArg GhcPs a b -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArg GhcPs a b -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArg GhcPs a b -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArg GhcPs a b -> m (HsArg GhcPs a b) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArg GhcPs a b -> m (HsArg GhcPs a b) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArg GhcPs a b -> m (HsArg GhcPs a b) Source #

(Data a, Data b) => Data (HsArg GhcRn a b) Source # |

Instance details

Defined in GHC.Hs.Instances

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> HsArg GhcRn a b -> c (HsArg GhcRn a b) Source #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArg GhcRn a b) Source #

toConstr :: HsArg GhcRn a b -> Constr Source #

dataTypeOf :: HsArg GhcRn a b -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArg GhcRn a b)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArg GhcRn a b)) Source #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> HsArg GhcRn a b -> HsArg GhcRn a b Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArg GhcRn a b -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArg GhcRn a b -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArg GhcRn a b -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArg GhcRn a b -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArg GhcRn a b -> m (HsArg GhcRn a b) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArg GhcRn a b -> m (HsArg GhcRn a b) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArg GhcRn a b -> m (HsArg GhcRn a b) Source #

(Data a, Data b) => Data (HsArg GhcTc a b) Source # |

Instance details

Defined in GHC.Hs.Instances

Methods

gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> HsArg GhcTc a b -> c (HsArg GhcTc a b) Source #

gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsArg GhcTc a b) Source #

toConstr :: HsArg GhcTc a b -> Constr Source #

dataTypeOf :: HsArg GhcTc a b -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsArg GhcTc a b)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsArg GhcTc a b)) Source #

gmapT :: (forall b0. Data b0 => b0 -> b0) -> HsArg GhcTc a b -> HsArg GhcTc a b Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsArg GhcTc a b -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsArg GhcTc a b -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsArg GhcTc a b -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsArg GhcTc a b -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsArg GhcTc a b -> m (HsArg GhcTc a b) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArg GhcTc a b -> m (HsArg GhcTc a b) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsArg GhcTc a b -> m (HsArg GhcTc a b) Source #

(Outputable tm, Outputable ty) => Outputable (HsArg (GhcPass p) tm ty) Source # | This instance is meant for debug-printing purposes. If you wish to pretty-print an application of `HsArg`s, use `pprHsArgsApp` instead.
Instance details Defined in GHC.Hs.Type Methods ppr :: HsArg (GhcPass p) tm ty -> SDoc Source #

numVisibleArgs :: [HsArg p tm ty] -> Arity Source #

pprHsArgsApp :: forall id tm ty (p :: Pass). (OutputableBndr id, Outputable tm, Outputable ty) => id -> LexicalFixity -> [HsArg (GhcPass p) tm ty] -> SDoc Source #

``pprHsArgsApp` id fixity args` pretty-prints an application of `id` to `args`, using the `fixity` to tell whether `id` should be printed prefix or infix. Examples:

    pprHsArgsApp T Prefix [HsTypeArg Bool, HsValArg Int]                        = T @Bool Int
    pprHsArgsApp T Prefix [HsTypeArg Bool, HsArgPar, HsValArg Int]              = (T @Bool) Int
    pprHsArgsApp (++) Infix [HsValArg Char, HsValArg Double]                    = Char ++ Double
    pprHsArgsApp (++) Infix [HsValArg Char, HsValArg Double, HsVarArg Ordering] = (Char ++ Double) Ordering

type LHsTypeArg p = HsArg p (LHsType p) (LHsKind p) Source #

lhsTypeArgSrcSpan :: LHsTypeArg GhcPs -> SrcSpan Source #

Compute the `SrcSpan` associated with an `LHsTypeArg`.

class OutputableBndrFlag flag (p :: Pass) Source #

Minimal complete definition

pprTyVarBndr

#### Instances

Instances details

OutputableBndrFlag Specificity p Source # |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr Specificity (GhcPass p) -> SDoc
OutputableBndrFlag () p Source # |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr () (GhcPass p) -> SDoc
OutputableBndrFlag (HsBndrVis (GhcPass p')) p Source # |
Instance details Defined in GHC.Hs.Type Methods pprTyVarBndr :: HsTyVarBndr (HsBndrVis (GhcPass p')) (GhcPass p) -> SDoc

type LBangType pass = XRec pass (BangType pass) Source #

Located Bang Type

type BangType pass = HsType pass Source #

Bang Type

In the parser, strictness and packedness annotations bind more tightly than docstrings. This means that when consuming a `BangType` (and looking for `HsBangTy`) we must be ready to peer behind a potential layer of `HsDocTy`. See #15206 for motivation and `getBangType` for an example.

data HsSrcBang Source #

Haskell Source Bang

Bangs on data constructor arguments as written by the user, including the source code for exact-printing.

In the AST, the SourceText is deconstructed and hidden inside `XBangTy` extension point.

Constructors

HsSrcBang SourceText HsBang |

data HsImplBang Source #

Haskell Implementation Bang

Bangs of data constructor arguments as generated by the compiler after consulting HsSrcBang, flags, etc.

Constructors

HsLazy | Lazy field, or one with an unlifted type
HsStrict Bool | Strict but not unpacked field True = we could have unpacked, but opted not to because of -O0. See Note [Detecting useless UNPACK pragmas]
HsUnpack (Maybe Coercion) | Strict and unpacked field co :: arg-ty ~ product-ty HsBang

#### Instances

Instances details

Data HsImplBang Source # |

Instance details

Defined in GHC.Core.DataCon

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsImplBang -> c HsImplBang Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c HsImplBang Source #

toConstr :: HsImplBang -> Constr Source #

dataTypeOf :: HsImplBang -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c HsImplBang) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c HsImplBang) Source #

gmapT :: (forall b. Data b => b -> b) -> HsImplBang -> HsImplBang Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsImplBang -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsImplBang -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsImplBang -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsImplBang -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsImplBang -> m HsImplBang Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsImplBang -> m HsImplBang Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsImplBang -> m HsImplBang Source #

Outputable HsImplBang Source # |
Instance details Defined in GHC.Core.DataCon Methods ppr :: HsImplBang -> SDoc Source #

data SrcStrictness Source #

Source Strictness

What strictness annotation the user wrote

Constructors

SrcLazy | Lazy, ie `~`
SrcStrict | Strict, ie `!`
NoSrcStrict | no strictness annotation

#### Instances

Instances details

Data SrcStrictness Source # |

Instance details

Defined in Language.Haskell.Syntax.Basic

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcStrictness -> c SrcStrictness Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcStrictness Source #

toConstr :: SrcStrictness -> Constr Source #

dataTypeOf :: SrcStrictness -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcStrictness) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcStrictness) Source #

gmapT :: (forall b. Data b => b -> b) -> SrcStrictness -> SrcStrictness Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcStrictness -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> SrcStrictness -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcStrictness -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcStrictness -> m SrcStrictness Source #

Binary SrcStrictness Source # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: WriteBinHandle -> SrcStrictness -> IO () Source # put :: WriteBinHandle -> SrcStrictness -> IO (Bin SrcStrictness) Source # get :: ReadBinHandle -> IO SrcStrictness Source #
Outputable SrcStrictness Source # |
Instance details Defined in GHC.Core.DataCon Methods ppr :: SrcStrictness -> SDoc Source #
Eq SrcStrictness Source # |
Instance details Defined in Language.Haskell.Syntax.Basic Methods (==) :: SrcStrictness -> SrcStrictness -> Bool Source # (/=) :: SrcStrictness -> SrcStrictness -> Bool Source #

data SrcUnpackedness Source #

Source Unpackedness

What unpackedness the user requested

Constructors

SrcUnpack | {-# UNPACK #-} specified
SrcNoUnpack | {-# NOUNPACK #-} specified
NoSrcUnpack | no unpack pragma

#### Instances

Instances details

Data SrcUnpackedness Source # |

Instance details

Defined in Language.Haskell.Syntax.Basic

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcUnpackedness -> c SrcUnpackedness Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcUnpackedness Source #

toConstr :: SrcUnpackedness -> Constr Source #

dataTypeOf :: SrcUnpackedness -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcUnpackedness) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcUnpackedness) Source #

gmapT :: (forall b. Data b => b -> b) -> SrcUnpackedness -> SrcUnpackedness Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcUnpackedness -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> SrcUnpackedness -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcUnpackedness -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcUnpackedness -> m SrcUnpackedness Source #

Binary SrcUnpackedness Source # |
Instance details Defined in GHC.Core.DataCon Methods put_ :: WriteBinHandle -> SrcUnpackedness -> IO () Source # put :: WriteBinHandle -> SrcUnpackedness -> IO (Bin SrcUnpackedness) Source # get :: ReadBinHandle -> IO SrcUnpackedness Source #
Outputable SrcUnpackedness Source # |
Instance details Defined in GHC.Core.DataCon Methods ppr :: SrcUnpackedness -> SDoc Source #
Eq SrcUnpackedness Source # |
Instance details Defined in Language.Haskell.Syntax.Basic Methods (==) :: SrcUnpackedness -> SrcUnpackedness -> Bool Source # (/=) :: SrcUnpackedness -> SrcUnpackedness -> Bool Source #

getBangType :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) Source #

getBangStrictness :: forall (p :: Pass). LHsType (GhcPass p) -> HsSrcBang Source #

data ConDeclField pass Source #

Constructor Declaration Field

Constructors

ConDeclField |

Fields

- cd_fld_ext :: XConDeclField pass
- cd_fld_names :: [LFieldOcc pass]

  See Note [ConDeclField pass]

- cd_fld_type :: LBangType pass
- cd_fld_doc :: Maybe (LHsDoc pass)

XConDeclField !(XXConDeclField pass) |

#### Instances

Instances details

Data (ConDeclField GhcPs) Source # |

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) -> ConDeclField GhcPs -> c (ConDeclField GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ConDeclField GhcPs) Source #

toConstr :: ConDeclField GhcPs -> Constr Source #

dataTypeOf :: ConDeclField GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ConDeclField GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ConDeclField GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> ConDeclField GhcPs -> ConDeclField GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConDeclField GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConDeclField GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> ConDeclField GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ConDeclField GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConDeclField GhcPs -> m (ConDeclField GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConDeclField GhcPs -> m (ConDeclField GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConDeclField GhcPs -> m (ConDeclField GhcPs) Source #

Data (ConDeclField GhcRn) Source # |

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) -> ConDeclField GhcRn -> c (ConDeclField GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ConDeclField GhcRn) Source #

toConstr :: ConDeclField GhcRn -> Constr Source #

dataTypeOf :: ConDeclField GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ConDeclField GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ConDeclField GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> ConDeclField GhcRn -> ConDeclField GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConDeclField GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConDeclField GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> ConDeclField GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ConDeclField GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConDeclField GhcRn -> m (ConDeclField GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConDeclField GhcRn -> m (ConDeclField GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConDeclField GhcRn -> m (ConDeclField GhcRn) Source #

Data (ConDeclField GhcTc) Source # |

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) -> ConDeclField GhcTc -> c (ConDeclField GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (ConDeclField GhcTc) Source #

toConstr :: ConDeclField GhcTc -> Constr Source #

dataTypeOf :: ConDeclField GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (ConDeclField GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (ConDeclField GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> ConDeclField GhcTc -> ConDeclField GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConDeclField GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConDeclField GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> ConDeclField GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> ConDeclField GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConDeclField GhcTc -> m (ConDeclField GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConDeclField GhcTc -> m (ConDeclField GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConDeclField GhcTc -> m (ConDeclField GhcTc) Source #

OutputableBndrId p => Outputable (ConDeclField (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: ConDeclField (GhcPass p) -> SDoc Source #
type Anno (ConDeclField (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (ConDeclField (GhcPass p)) = SrcSpanAnnA
type Anno [LocatedA (ConDeclField (GhcPass _1))] Source # |
Instance details Defined in GHC.Hs.Decls type Anno [LocatedA (ConDeclField (GhcPass _1))] = SrcSpanAnnL

type LConDeclField pass = XRec pass (ConDeclField pass) Source #

Located Constructor Declaration Field

pprConDeclFields :: forall (p :: Pass). OutputableBndrId p => [LConDeclField (GhcPass p)] -> SDoc Source #

data HsConDetails tyarg arg rec Source #

Describes the arguments to a data constructor. This is a common representation for several constructor-related concepts, including:

- The arguments in a Haskell98-style constructor declaration (see `HsConDeclH98Details` in GHC.Hs.Decls).
- The arguments in constructor patterns in `case`/function definitions (see `HsConPatDetails` in GHC.Hs.Pat).
- The left-hand side arguments in a pattern synonym binding (see `HsPatSynDetails` in GHC.Hs.Binds).

One notable exception is the arguments in a GADT constructor, which uses a separate data type entirely (see `HsConDeclGADTDetails` in GHC.Hs.Decls). This is because GADT constructors cannot be declared with infix syntax, unlike the concepts above (#18844).

Constructors

PrefixCon [tyarg] [arg] |
RecCon rec |
InfixCon arg arg |

#### Instances

Instances details

(Data tyarg, Data rec, Data arg) => Data (HsConDetails tyarg arg rec) Source # |

Instance details

Defined in Language.Haskell.Syntax.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> HsConDetails tyarg arg rec -> c (HsConDetails tyarg arg rec) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (HsConDetails tyarg arg rec) Source #

toConstr :: HsConDetails tyarg arg rec -> Constr Source #

dataTypeOf :: HsConDetails tyarg arg rec -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (HsConDetails tyarg arg rec)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (HsConDetails tyarg arg rec)) Source #

gmapT :: (forall b. Data b => b -> b) -> HsConDetails tyarg arg rec -> HsConDetails tyarg arg rec Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> HsConDetails tyarg arg rec -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> HsConDetails tyarg arg rec -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> HsConDetails tyarg arg rec -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> HsConDetails tyarg arg rec -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> HsConDetails tyarg arg rec -> m (HsConDetails tyarg arg rec) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> HsConDetails tyarg arg rec -> m (HsConDetails tyarg arg rec) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> HsConDetails tyarg arg rec -> m (HsConDetails tyarg arg rec) Source #

(Outputable tyarg, Outputable arg, Outputable rec) => Outputable (HsConDetails tyarg arg rec) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: HsConDetails tyarg arg rec -> SDoc Source #

noTypeArgs :: [Void] Source #

An empty list that can be used to indicate that there are no type arguments allowed in cases where HsConDetails is applied to Void.

data FieldOcc pass Source #

Field Occurrence

Represents an *occurrence* of a field. This may or may not be a binding occurrence (e.g. this type is used in `ConDeclField` and `RecordPatSynField` which bind their fields, but also in `HsRecField` for record construction and patterns, which do not).

We store both the `RdrName` the user originally wrote, and after the renamer we use the extension field to store the selector function.

There is a wrinkle in that update field occurances are sometimes ambiguous during the rename stage. See note [Ambiguous FieldOcc in record updates] to see how we currently handle this.

Constructors

FieldOcc |

Fields

- foExt :: XCFieldOcc pass
- foLabel :: LIdP pass

XFieldOcc !(XXFieldOcc pass) |

#### Instances

Instances details

Data (FieldOcc GhcPs) Source # |

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) -> FieldOcc GhcPs -> c (FieldOcc GhcPs) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FieldOcc GhcPs) Source #

toConstr :: FieldOcc GhcPs -> Constr Source #

dataTypeOf :: FieldOcc GhcPs -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FieldOcc GhcPs)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FieldOcc GhcPs)) Source #

gmapT :: (forall b. Data b => b -> b) -> FieldOcc GhcPs -> FieldOcc GhcPs Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FieldOcc GhcPs -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FieldOcc GhcPs -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> FieldOcc GhcPs -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FieldOcc GhcPs -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FieldOcc GhcPs -> m (FieldOcc GhcPs) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldOcc GhcPs -> m (FieldOcc GhcPs) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldOcc GhcPs -> m (FieldOcc GhcPs) Source #

Data (FieldOcc GhcRn) Source # |

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) -> FieldOcc GhcRn -> c (FieldOcc GhcRn) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FieldOcc GhcRn) Source #

toConstr :: FieldOcc GhcRn -> Constr Source #

dataTypeOf :: FieldOcc GhcRn -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FieldOcc GhcRn)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FieldOcc GhcRn)) Source #

gmapT :: (forall b. Data b => b -> b) -> FieldOcc GhcRn -> FieldOcc GhcRn Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FieldOcc GhcRn -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FieldOcc GhcRn -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> FieldOcc GhcRn -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FieldOcc GhcRn -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FieldOcc GhcRn -> m (FieldOcc GhcRn) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldOcc GhcRn -> m (FieldOcc GhcRn) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldOcc GhcRn -> m (FieldOcc GhcRn) Source #

Data (FieldOcc GhcTc) Source # |

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) -> FieldOcc GhcTc -> c (FieldOcc GhcTc) Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FieldOcc GhcTc) Source #

toConstr :: FieldOcc GhcTc -> Constr Source #

dataTypeOf :: FieldOcc GhcTc -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FieldOcc GhcTc)) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FieldOcc GhcTc)) Source #

gmapT :: (forall b. Data b => b -> b) -> FieldOcc GhcTc -> FieldOcc GhcTc Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FieldOcc GhcTc -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FieldOcc GhcTc -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> FieldOcc GhcTc -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FieldOcc GhcTc -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FieldOcc GhcTc -> m (FieldOcc GhcTc) Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldOcc GhcTc -> m (FieldOcc GhcTc) Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FieldOcc GhcTc -> m (FieldOcc GhcTc) Source #

Outputable (XRec pass (IdP pass)) => Outputable (FieldOcc pass) Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: FieldOcc pass -> SDoc Source #
OutputableBndrId pass => OutputableBndr (FieldOcc (GhcPass pass)) Source # |
Instance details Defined in GHC.Hs.Type Methods pprBndr :: BindingSite -> FieldOcc (GhcPass pass) -> SDoc Source # pprPrefixOcc :: FieldOcc (GhcPass pass) -> SDoc Source # pprInfixOcc :: FieldOcc (GhcPass pass) -> SDoc Source # bndrIsJoin_maybe :: FieldOcc (GhcPass pass) -> JoinPointHood Source #
(Eq (LIdP pass), Eq (XCFieldOcc pass), Eq (XXFieldOcc pass)) => Eq (FieldOcc pass) Source # |
Instance details Defined in Language.Haskell.Syntax.Type Methods (==) :: FieldOcc pass -> FieldOcc pass -> Bool Source # (/=) :: FieldOcc pass -> FieldOcc pass -> Bool Source #
OutputableBndrId pass => OutputableBndr (GenLocated SrcSpan (FieldOcc (GhcPass pass))) Source # |
Instance details Defined in GHC.Hs.Type Methods pprBndr :: BindingSite -> GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> SDoc Source # pprPrefixOcc :: GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> SDoc Source # pprInfixOcc :: GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> SDoc Source # bndrIsJoin_maybe :: GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> JoinPointHood Source #
type Anno (FieldOcc (GhcPass p)) Source # |
Instance details Defined in GHC.Hs.Type type Anno (FieldOcc (GhcPass p)) = SrcSpanAnnA

type LFieldOcc pass = XRec pass (FieldOcc pass) Source #

Located Field Occurrence

mkFieldOcc :: LocatedN RdrName -> FieldOcc GhcPs Source #

fieldOccRdrName :: forall (p :: Pass). IsPass p => FieldOcc (GhcPass p) -> RdrName Source #

fieldOccLRdrName :: forall (p :: Pass). IsPass p => FieldOcc (GhcPass p) -> LocatedN RdrName Source #

data OpName Source #

Name of an operator in an operator application or section

Constructors

NormalOp Name | A normal identifier
NegateOp | Prefix negation
UnboundOp RdrName | An unbound identifier
RecFldOp (FieldOcc GhcRn) | A record field occurrence

#### Instances

Instances details

Outputable OpName Source # |
Instance details Defined in GHC.Hs.Type Methods ppr :: OpName -> SDoc Source #

mkAnonWildCardTy :: EpToken "_" -> HsType GhcPs Source #

pprAnonWildCard :: SDoc Source #

hsOuterTyVarNames :: HsOuterTyVarBndrs flag GhcRn -> [Name] Source #

hsOuterExplicitBndrs :: forall flag (p :: Pass). HsOuterTyVarBndrs flag (GhcPass p) -> [LHsTyVarBndr flag (NoGhcTc (GhcPass p))] Source #

mapHsOuterImplicit :: (XHsOuterImplicit pass -> XHsOuterImplicit pass) -> HsOuterTyVarBndrs flag pass -> HsOuterTyVarBndrs flag pass Source #

mkHsOuterImplicit :: HsOuterTyVarBndrs flag GhcPs Source #

mkHsOuterExplicit :: EpAnnForallInvis -> [LHsTyVarBndr flag GhcPs] -> HsOuterTyVarBndrs flag GhcPs Source #

mkHsImplicitSigType :: LHsType GhcPs -> HsSigType GhcPs Source #

mkHsExplicitSigType :: EpAnnForallInvis -> [LHsTyVarBndr Specificity GhcPs] -> LHsType GhcPs -> HsSigType GhcPs Source #

mkHsWildCardBndrs :: thing -> HsWildCardBndrs GhcPs thing Source #

mkHsPatSigType :: EpAnnCO -> LHsType GhcPs -> HsPatSigType GhcPs Source #

mkHsTyPat :: LHsType GhcPs -> HsTyPat GhcPs Source #

mkEmptyWildCardBndrs :: thing -> HsWildCardBndrs GhcRn thing Source #

mkHsForAllVisTele :: forall (p :: Pass). EpAnnForallVis -> [LHsTyVarBndr () (GhcPass p)] -> HsForAllTelescope (GhcPass p) Source #

mkHsForAllInvisTele :: forall (p :: Pass). EpAnnForallInvis -> [LHsTyVarBndr Specificity (GhcPass p)] -> HsForAllTelescope (GhcPass p) Source #

mkHsQTvs :: [LHsTyVarBndr (HsBndrVis GhcPs) GhcPs] -> LHsQTyVars GhcPs Source #

hsQTvExplicit :: LHsQTyVars pass -> [LHsTyVarBndr (HsBndrVis pass) pass] Source #

emptyLHsQTvs :: LHsQTyVars GhcRn Source #

isHsKindedTyVar :: HsTyVarBndr flag pass -> Bool Source #

Does this `HsTyVarBndr` come with an explicit kind annotation?

hsBndrVar :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> HsBndrVar (GhcPass pass) Source #

Get the variable of the type variable binder

hsBndrKind :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> HsBndrKind (GhcPass pass) Source #

Get the kind of the type variable binder

hsTvbAllKinded :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> Bool Source #

Do all type variables in this `LHsQTyVars` come with kind annotations?

hsScopedTvs :: LHsSigType GhcRn -> [Name] Source #

hsScopedKvs :: LHsKind GhcRn -> [Name] Source #

hsWcScopedTvs :: LHsSigWcType GhcRn -> [Name] Source #

dropWildCards :: LHsSigWcType pass -> LHsSigType pass Source #

hsTyVarLName :: forall flag (p :: Pass). HsTyVarBndr flag (GhcPass p) -> Maybe (LIdP (GhcPass p)) Source #

hsTyVarName :: forall flag (p :: Pass). HsTyVarBndr flag (GhcPass p) -> Maybe (IdP (GhcPass p)) Source #

hsAllLTyVarNames :: LHsQTyVars GhcRn -> [Name] Source #

hsLTyVarLocNames :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsQTyVars (GhcPass p) -> [LocatedN (IdP (GhcPass p))] Source #

hsLTyVarName :: forall flag (p :: Pass). LHsTyVarBndr flag (GhcPass p) -> Maybe (IdP (GhcPass p)) Source #

hsLTyVarNames :: forall flag (p :: Pass). [LHsTyVarBndr flag (GhcPass p)] -> [IdP (GhcPass p)] Source #

hsForAllTelescopeNames :: forall (p :: Pass). HsForAllTelescope (GhcPass p) -> [IdP (GhcPass p)] Source #

hsLTyVarLocName :: forall (p :: Pass) flag. Anno (IdGhcP p) ~ SrcSpanAnnN => LHsTyVarBndr flag (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p))) Source #

hsExplicitLTyVarNames :: forall (p :: Pass). LHsQTyVars (GhcPass p) -> [IdP (GhcPass p)] Source #

splitLHsInstDeclTy :: LHsSigType GhcRn -> ([Name], Maybe (LHsContext GhcRn), LHsType GhcRn) Source #

Decompose a type class instance type (of the form `forall tvs. context => instance_head`) into its constituent parts. Note that the `[Name]`s returned correspond to either:

- The implicitly bound type variables (if the type lacks an outermost `forall`), or
- The explicitly bound type variables (if the type has an outermost `forall`).

This function is careful not to look through parentheses. See `Note [No nested foralls or contexts in instance types]` for why this is important.

getLHsInstDeclHead :: forall (p :: Pass). LHsSigType (GhcPass p) -> LHsType (GhcPass p) Source #

Decompose a type class instance type (of the form `forall tvs. context => instance_head`) into the `instance_head`.

getLHsInstDeclClass_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsSigType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p))) Source #

Decompose a type class instance type (of the form `forall tvs. context => instance_head`) into the `instance_head` and retrieve the underlying class type constructor (if it exists).

splitLHsPatSynTy :: forall (p :: Pass). LHsSigType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass (NoGhcTcPass p))], Maybe (LHsContext (GhcPass p)), [LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p)) Source #

Decompose a pattern synonym type signature into its constituent parts.

Note that this function looks through parentheses, so it will work on types such as `(forall a. ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them.

splitLHsForAllTyInvis :: forall (pass :: Pass). LHsType (GhcPass pass) -> ([LHsTyVarBndr Specificity (GhcPass pass)], LHsType (GhcPass pass)) Source #

Decompose a type of the form `forall tvs. body` into its constituent parts. Only splits type variable binders that were quantified invisibly (e.g., `forall a.`, with a dot).

This function is used to split apart certain types, such as instance declaration types, which disallow visible `forall`s. For instance, if GHC split apart the `forall` in `instance forall a -> Show (Blah a)`, then that declaration would mistakenly be accepted!

Note that this function looks through parentheses, so it will work on types such as `(forall a. ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them. Unlike `splitLHsSigmaTyInvis`, this function does not look through parentheses, hence the suffix `_KP` (short for "Keep Parentheses").

splitLHsForAllTyInvis_KP :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe [LHsTyVarBndr Specificity (GhcPass pass)], LHsType (GhcPass pass)) Source #

Decompose a type of the form `forall tvs. body` into its constituent parts. Only splits type variable binders that were quantified invisibly (e.g., `forall a.`, with a dot).

This function is used to split apart certain types, such as instance declaration types, which disallow visible `forall`s. For instance, if GHC split apart the `forall` in `instance forall a -> Show (Blah a)`, then that declaration would mistakenly be accepted!

Unlike `splitLHsForAllTyInvis`, this function does not look through parentheses, hence the suffix `_KP` (short for "Keep Parentheses").

splitLHsQualTy :: forall (pass :: Pass). LHsType (GhcPass pass) -> (Maybe (LHsContext (GhcPass pass)), LHsType (GhcPass pass)) Source #

Decompose a type of the form `context => body` into its constituent parts.

Note that this function looks through parentheses, so it will work on types such as `(context => ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them.

splitLHsSigmaTyInvis :: forall (p :: Pass). LHsType (GhcPass p) -> ([LHsTyVarBndr Specificity (GhcPass p)], Maybe (LHsContext (GhcPass p)), LHsType (GhcPass p)) Source #

Decompose a sigma type (of the form `forall tvs. context => body`) into its constituent parts. Only splits type variable binders that were quantified invisibly (e.g., `forall a.`, with a dot).

This function is used to split apart certain types, such as instance declaration types, which disallow visible `forall`s. For instance, if GHC split apart the `forall` in `instance forall a -> Show (Blah a)`, then that declaration would mistakenly be accepted!

Note that this function looks through parentheses, so it will work on types such as `(forall a. ...)`. The downside to this is that it is not generally possible to take the returned types and reconstruct the original type (parentheses and all) from them.

splitLHsGadtTy :: LHsSigType GhcPs -> (HsOuterSigTyVarBndrs GhcPs, Maybe (LHsContext GhcPs), LHsType GhcPs) Source #

Decompose a GADT type into its constituent parts. Returns `(outer_bndrs, mb_ctxt, body)`, where:

- `outer_bndrs` are `HsOuterExplicit` if the type has explicit, outermost type variable binders. Otherwise, they are `HsOuterImplicit`.
- `mb_ctxt` is `Just` the context, if it is provided. Otherwise, it is `Nothing`.
- `body` is the body of the type after the optional `forall`s and context.

This function is careful not to look through parentheses. See `Note [GADT abstract syntax] (Wrinkle: No nested foralls or contexts)` GHC.Hs.Decls for why this is important.

splitHsFunType :: forall (p :: Pass). LHsType (GhcPass p) -> (([EpToken "("], [EpToken ")"]), EpAnnComments, [HsScaled (GhcPass p) (LHsType (GhcPass p))], LHsType (GhcPass p)) Source #

hsTyGetAppHead_maybe :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => LHsType (GhcPass p) -> Maybe (LocatedN (IdP (GhcPass p))) Source #

Retrieve the name of the "head" of a nested type application. This is somewhat like `GHC.Tc.Gen.HsType.splitHsAppTys`, but a little more thorough. The purpose of this function is to examine instance heads, so it doesn't handle *all* cases (like lists, tuples, `(~)`, etc.).

mkHsOpTy :: forall (p :: Pass). Anno (IdGhcP p) ~ SrcSpanAnnN => PromotionFlag -> LHsType (GhcPass p) -> LocatedN (IdP (GhcPass p)) -> LHsType (GhcPass p) -> HsType (GhcPass p) Source #

mkHsAppTy :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) Source #

mkHsAppTys :: forall (p :: Pass). LHsType (GhcPass p) -> [LHsType (GhcPass p)] -> LHsType (GhcPass p) Source #

mkHsAppKindTy :: forall (p :: Pass). XAppKindTy (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) Source #

ignoreParens :: forall (p :: Pass). LHsType (GhcPass p) -> LHsType (GhcPass p) Source #

hsSigWcType :: UnXRec p => LHsSigWcType p -> LHsType p Source #

hsPatSigType :: HsPatSigType pass -> LHsType pass Source #

hsTyKindSig :: forall (p :: Pass). LHsType (GhcPass p) -> Maybe (LHsKind (GhcPass p)) Source #

Get the kind signature of a type, ignoring parentheses:

hsTyKindSig `Maybe ` = Nothing hsTyKindSig `Maybe :: Type -> Type ` = Just `Type -> Type` hsTyKindSig `Maybe :: ((Type -> Type))` = Just `Type -> Type`

This is used to extract the result kind of type synonyms with a CUSK:

type S = (F :: res_kind) ^^^^^^^^

setHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). flag -> HsTyVarBndr flag' (GhcPass pass) -> HsTyVarBndr flag (GhcPass pass) Source #

Set the attached flag

hsTyVarBndrFlag :: forall flag (pass :: Pass). HsTyVarBndr flag (GhcPass pass) -> flag Source #

Return the attached flag

updateHsTyVarBndrFlag :: forall flag flag' (pass :: Pass). (flag -> flag') -> HsTyVarBndr flag (GhcPass pass) -> HsTyVarBndr flag' (GhcPass pass) Source #

Update the attached flag

pprHsType :: forall (p :: Pass). OutputableBndrId p => HsType (GhcPass p) -> SDoc Source #

pprHsForAll :: forall (p :: Pass). OutputableBndrId p => HsForAllTelescope (GhcPass p) -> Maybe (LHsContext (GhcPass p)) -> SDoc Source #

Prints a forall; When passed an empty list, prints `forall .`/`forall ->` only when `-dppr-debug` is enabled.

pprHsOuterFamEqnTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterFamEqnTyVarBndrs (GhcPass p) -> SDoc Source #

Prints the explicit `forall` in a type family equation if one is written. If there is no explicit `forall`, nothing is printed.

pprHsOuterSigTyVarBndrs :: forall (p :: Pass). OutputableBndrId p => HsOuterSigTyVarBndrs (GhcPass p) -> SDoc Source #

Prints the outermost `forall` in a type signature if one is written. If there is no outermost `forall`, nothing is printed.

pprLHsContext :: forall (p :: Pass). OutputableBndrId p => Maybe (LHsContext (GhcPass p)) -> SDoc Source #

hsTypeNeedsParens :: forall (p :: Pass). PprPrec -> HsType (GhcPass p) -> Bool Source #

``hsTypeNeedsParens` p t` returns `True` if the type `t` needs parentheses under precedence `p`.

parenthesizeHsType :: forall (p :: Pass). PprPrec -> LHsType (GhcPass p) -> LHsType (GhcPass p) Source #

``parenthesizeHsType` p ty` checks if ``hsTypeNeedsParens` p ty` is true, and if so, surrounds `ty` with an `HsParTy`. Otherwise, it simply returns `ty`.

parenthesizeHsContext :: forall (p :: Pass). PprPrec -> LHsContext (GhcPass p) -> LHsContext (GhcPass p) Source #

``parenthesizeHsContext` p ctxt` checks if `ctxt` is a single constraint `c` such that ``hsTypeNeedsParens` p c` is true, and if so, surrounds `c` with an `HsParTy` to form a parenthesized `ctxt`. Otherwise, it simply returns `ctxt` unchanged.

# Orphan instances

Outputable HsIPName Source # |
Instance details Methods ppr :: HsIPName -> SDoc Source #
OutputableBndr HsIPName Source # |
Instance details Methods pprBndr :: BindingSite -> HsIPName -> SDoc Source # pprPrefixOcc :: HsIPName -> SDoc Source # pprInfixOcc :: HsIPName -> SDoc Source # bndrIsJoin_maybe :: HsIPName -> JoinPointHood Source #
OutputableBndrId p => Outputable (ConDeclField (GhcPass p)) Source # |
Instance details Methods ppr :: ConDeclField (GhcPass p) -> SDoc Source #
Outputable (XRec pass (IdP pass)) => Outputable (FieldOcc pass) Source # |
Instance details Methods ppr :: FieldOcc pass -> SDoc Source #
OutputableBndrId p => Outputable (HsBndrVar (GhcPass p)) Source # |
Instance details Methods ppr :: HsBndrVar (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsForAllTelescope (GhcPass p)) Source # |
Instance details Methods ppr :: HsForAllTelescope (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsPatSigType (GhcPass p)) Source # |
Instance details Methods ppr :: HsPatSigType (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsSigType (GhcPass p)) Source # |
Instance details Methods ppr :: HsSigType (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsTyLit (GhcPass p)) Source # |
Instance details Methods ppr :: HsTyLit (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsTyPat (GhcPass p)) Source # |
Instance details Methods ppr :: HsTyPat (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (HsType (GhcPass p)) Source # |
Instance details Methods ppr :: HsType (GhcPass p) -> SDoc Source #
OutputableBndrId p => Outputable (LHsQTyVars (GhcPass p)) Source # |
Instance details Methods ppr :: LHsQTyVars (GhcPass p) -> SDoc Source #
OutputableBndrId pass => OutputableBndr (FieldOcc (GhcPass pass)) Source # |
Instance details Methods pprBndr :: BindingSite -> FieldOcc (GhcPass pass) -> SDoc Source # pprPrefixOcc :: FieldOcc (GhcPass pass) -> SDoc Source # pprInfixOcc :: FieldOcc (GhcPass pass) -> SDoc Source # bndrIsJoin_maybe :: FieldOcc (GhcPass pass) -> JoinPointHood Source #
(Outputable mult, OutputableBndrId pass) => Outputable (HsArrowOf mult (GhcPass pass)) Source # |
Instance details Methods ppr :: HsArrowOf mult (GhcPass pass) -> SDoc Source #
(OutputableBndrFlag flag p, OutputableBndrFlag flag (NoGhcTcPass p), OutputableBndrId p) => Outputable (HsOuterTyVarBndrs flag (GhcPass p)) Source # |
Instance details Methods ppr :: HsOuterTyVarBndrs flag (GhcPass p) -> SDoc Source #
(OutputableBndrId p, OutputableBndrFlag flag p) => Outputable (HsTyVarBndr flag (GhcPass p)) Source # |
Instance details Methods ppr :: HsTyVarBndr flag (GhcPass p) -> SDoc Source #
Outputable thing => Outputable (HsWildCardBndrs (GhcPass p) thing) Source # |
Instance details Methods ppr :: HsWildCardBndrs (GhcPass p) thing -> SDoc Source #
OutputableBndrId pass => OutputableBndr (GenLocated SrcSpan (FieldOcc (GhcPass pass))) Source # |
Instance details Methods pprBndr :: BindingSite -> GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> SDoc Source # pprPrefixOcc :: GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> SDoc Source # pprInfixOcc :: GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> SDoc Source # bndrIsJoin_maybe :: GenLocated SrcSpan (FieldOcc (GhcPass pass)) -> JoinPointHood Source #
(Outputable tm, Outputable ty) => Outputable (HsArg (GhcPass p) tm ty) Source # | This instance is meant for debug-printing purposes. If you wish to pretty-print an application of `HsArg`s, use `pprHsArgsApp` instead.
Instance details Methods ppr :: HsArg (GhcPass p) tm ty -> SDoc Source #
(Outputable tyarg, Outputable arg, Outputable rec) => Outputable (HsConDetails tyarg arg rec) Source # |
Instance details Methods ppr :: HsConDetails tyarg arg rec -> SDoc Source #