HORIZON HASKELLDocslts/ghc-10.0.xaa25b892026-10-10Search names, modules, packages, or :: a typeCtrl K

GHC 10.0.0.20260917 · lts/ghc-10.0.x · aa25b89 · 2026-10-10

Moduleghc-10.0.0.20260917GHC2024

Language.Haskell.Syntax.Extension

  • 4 types
  • 3 classes
  • 2 values
datadata NoExtField
#

A placeholder type for TTG extension points that are not currently used to represent any particular value.

This should not be confused with DataConCantHappen, which are found in unused extension constructors and therefore should never be inhabited. In contrast, NoExtField is used in extension points (e.g., as the field of some constructor), so it must have an inhabitant to construct AST passes that manipulate fields with that extension point as their type.

Instances5Eq, Data, Ord, Outputable, ToHie
  • Eq NoExtFieldDefined in ghc-10.0.0.20260917 · Language.Haskell.Syntax.Extension
  • Data NoExtFieldDefined in ghc-10.0.0.20260917 · Language.Haskell.Syntax.Extension
  • Ord NoExtFieldDefined in ghc-10.0.0.20260917 · Language.Haskell.Syntax.Extension
  • Outputable NoExtFieldDefined in ghc-10.0.0.20260917 · GHC.Hs.Extension · orphan
  • ToHie (Context (Located NoExtField))Defined in ghc-10.0.0.20260917 · GHC.Iface.Ext.Ast
familytype family XRec p a
#

GHC's L prefixed variants wrap their vanilla variant in this type family, to add SrcLoc info via Located. Other passes than GhcPass not interested in location information can define this as type instance XRec NoLocated a = a. See Note [XRec and SrcSpans in the AST]

Instances1XRec
familytype family Anno a
#
Instances103Anno, …
classclass UnXRec p where
#

We can strip off the XRec to access the underlying data. See Note [XRec and SrcSpans in the AST]

Methods

Instances1UnXRec
  • UnXRec (GhcPass p)Defined in ghc-10.0.0.20260917 · GHC.Hs.Extension
classclass MapXRec p where
#

We can map over the underlying type contained in an XRec while preserving the annotation as is.

Methods

Instances1MapXRec
classclass WrapXRec p a where
#

The trivial wrapper that carries no additional information See Note [XRec and SrcSpans in the AST]

Methods

Instances1WrapXRec
familytype family IdP p
#

Maps the "normal" id type for a given pass

Instances1IdP
  • type IdP (GhcPass p) = IdGhcP pDefined in ghc-10.0.0.20260917 · GHC.Hs.Extension
familytype family IdOccP p
#

Like IdP, except it keeps track of the user-written module qualification, if any.

See Note [IdOcc].

Instances1IdOccP
familytype family XFunBind x x'
#
Instances3XFunBind
  • type XFunBind (GhcPass pL) GhcPs = NoExtFieldDefined in ghc-10.0.0.20260917 · GHC.Hs.Binds · orphan
  • type XFunBind (GhcPass pL) GhcRn = NameSetDefined in ghc-10.0.0.20260917 · GHC.Hs.Binds · orphan

    After the renamer (but before the type-checker), the FunBind extension field contains the locally-bound free variables of this defn. See Note [Bind free vars]

  • type XFunBind (GhcPass pL) GhcTc = (HsWrapper, [CoreTickish])Defined in ghc-10.0.0.20260917 · GHC.Hs.Binds · orphan

    After the type-checker, the FunBind extension field contains the ticks to put on the rhs, if any, and a coercion from the type of the MatchGroup to the type of the Id. Example:

         f :: Int -> forall a. a -> a
         f x y = y
    

    Then the MatchGroup will have type (Int -> a' -> a') (with a free type variable a'). The coercion will take a CoreExpr of this type and convert it to a CoreExpr of type Int -> forall a'. a' -> a' Notice that the coercion captures the free a'.

familytype family XXActivation x
#
Instances1XXActivation
  • type XXActivation (GhcPass _1) = XXActivationGhcDefined in ghc-10.0.0.20260917 · GHC.Types.InlinePragma · orphan
familytype family XCType x
#
Instances1XCType
familytype family XVar x
#
Instances1XVar
familytype family XLam x
#
Instances1XLam
familytype family XApp x
#
Instances1XApp
familytype family XIf x
#
Instances3XIf
familytype family XTick x
#
familytype family XHole x
#
Instances3XHole
familytype family XFunRhs
#
Instances1XFunRhs
familytype family XMG x b
#
Instances3XMG
  • type XMG GhcPs b = OriginDefined in ghc-10.0.0.20260917 · GHC.Hs.Expr · orphan
  • type XMG GhcRn b = OriginDefined in ghc-10.0.0.20260917 · GHC.Hs.Expr · orphan
  • type XMG GhcTc b = MatchGroupTcDefined in ghc-10.0.0.20260917 · GHC.Hs.Expr · orphan
familytype family XNPat x
#
Instances3XNPat
  • type XNPat GhcPs = EpToken "-"Defined in ghc-10.0.0.20260917 · GHC.Hs.Pat · orphan
  • type XNPat GhcRn = EpToken "-"Defined in ghc-10.0.0.20260917 · GHC.Hs.Pat · orphan
  • type XNPat GhcTc = TypeDefined in ghc-10.0.0.20260917 · GHC.Hs.Pat · orphan
familytype family XHsQTvs x
#
Instances3XHsQTvs
  • type XHsQTvs GhcPs = NoExtFieldDefined in ghc-10.0.0.20260917 · GHC.Hs.Type · orphan
  • type XHsQTvs GhcRn = HsQTvsRnDefined in ghc-10.0.0.20260917 · GHC.Hs.Type · orphan
  • type XHsQTvs GhcTc = HsQTvsRnDefined in ghc-10.0.0.20260917 · GHC.Hs.Type · orphan
familytype family XHsWC x b
#
Instances3XHsWC
  • type XHsWC GhcPs b = NoExtFieldDefined in ghc-10.0.0.20260917 · GHC.Hs.Type · orphan
  • type XHsWC GhcRn b = [Name]Defined in ghc-10.0.0.20260917 · GHC.Hs.Type · orphan
  • type XHsWC GhcTc b = [Name]Defined in ghc-10.0.0.20260917 · GHC.Hs.Type · orphan
familytype family XHsPS x
#
Instances3XHsPS
familytype family XTyVar x
#
Instances1XTyVar
familytype family XIEType p
#
Instances1XIEType
familytype family XIEData p
#
Instances1XIEData
familytype family NoGhcTc p
#

See Note [NoGhcTc] in GHC.Hs.Extension. It has to be in this module because it is used like an extension point (in the data definitions of types that should be parameter-agnostic.

Instances1NoGhcTc
  • type NoGhcTc (GhcPass pass) = GhcPass (NoGhcTcPass pass)Defined in ghc-10.0.0.20260917 · GHC.Hs.Extension

    Marks that a field uses the GhcRn variant even when the pass parameter is GhcTc. Useful for storing HsTypes in GHC.Hs.Exprs, say, because HsType GhcTc should never occur. See Note [NoGhcTc]