HORIZON HASKELLDocslts/ghc-9.14.x45dd5372026-10-11Search names, modules, packages, or :: a typeCtrl K

GHC 9.14.1 · lts/ghc-9.14.x · 45dd537 · 2026-10-11

Moduleghc-lib-parser-9.14.1.20251220GHC2021

GHC.Iface.Type

  • 33 types
  • 54 values
newtypenewtype IfLclName
#

A local name in iface syntax

Instances6Eq, Ord, Show, NFData, Outputable, Binary
  • Eq IfLclNameDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • Ord IfLclNameDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • Show IfLclNameDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • NFData IfLclNameDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • Outputable IfLclNameDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • Binary IfLclNameDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
datadata IfaceType
#
Instances7Eq, Ord, Outputable, NFData, Binary, …
datadata IfaceCoercion
#
Instances5Eq, Ord, NFData, Outputable, Binary
datadata IfaceTyCon
#

Constructors

  • IfaceTyCon
    • ifaceTyConName :: IfExtName
    • ifaceTyConInfo :: !IfaceTyConInfo

      We add a bang to this field as heap analysis showed that this constructor retains a thunk to a value that is usually shared.

      See !12200 for how this bang saved ~10% residency when loading mi_extra_decls on the agda code base.

      See Note [Sharing IfaceTyConInfo] for why sharing is so important for IfaceTyConInfo.

Instances5Eq, Ord, NFData, Outputable, Binary
datadata IfaceTyConInfo
#
Instances5Eq, Ord, NFData, Outputable, Binary
datadata IfaceTyConSort
#

The various types of TyCons which have special, built-in syntax.

Constructors

  • IfaceNormalTyCon

    a regular tycon

  • IfaceTupleTyCon !Arity !TupleSort

    a tuple, e.g. (a, b, c) or (#a, b, c#). The arity is the tuple width, not the tycon arity (which is twice the width in the case of unboxed tuples).

  • IfaceSumTyCon !Arity

    an unboxed sum, e.g. (# a | b | c #)

  • IfaceEqualityTyCon

    A heterogeneous equality TyCon (i.e. eqPrimTyCon, eqReprPrimTyCon, heqTyCon) that is actually being applied to two types of the same kind. This affects pretty-printing only: see Note [Equality predicates in IfaceType]

Instances5Eq, Ord, NFData, Outputable, Binary
datadata IfaceTyLit
#
Instances5Eq, Ord, NFData, Outputable, Binary
datadata IfaceAppArgs
#

Stores the arguments in a type application as a list. See Note [Suppressing invisible arguments].

Instances7Eq, Ord, Semigroup, Monoid, NFData, Outputable, …
datadata IfaceBndr
#
Instances5Eq, Ord, NFData, Outputable, Binary
  • Eq IfaceBndrDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • Ord IfaceBndrDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • NFData IfaceBndrDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • Outputable IfaceBndrDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
  • Binary IfaceBndrDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Iface.Type
datadata ForAllTyFlag
#

ForAllTyFlag

Is something required to appear in source Haskell (Required), permitted by request (Specified) (visible type application), or prohibited entirely from appearing in source Haskell (Inferred)? See Note [VarBndrs, ForAllTyBinders, TyConBinders, and visibility] in GHC.Core.TyCo.Rep

Instances8Eq, Data, Ord, NFData, Binary, OutputableBndrFlag, …
datadata FunTyFlag
#

The non-dependent version of ForAllTyFlag. See Note [FunTyFlag] Appears here partly so that it's together with its friends ForAllTyFlag and ForallVisFlag, but also because it is used in IfaceType, rather early in the compilation chain

Instances6Eq, Data, Ord, NFData, Outputable, Binary
  • Eq FunTyFlagDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Var
  • Data FunTyFlagDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Var
  • Ord FunTyFlagDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Var
  • NFData FunTyFlagDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Var
  • Outputable FunTyFlagDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Var
  • Binary FunTyFlagDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Var
datadata ShowHowMuch
#

Constructors

  • ShowHeader AltPpr

    Header information only, not rhs

  • ShowSome (Maybe (OccName -> Bool)) AltPpr

    Show the declaration and its RHS. The Maybe predicate allows filtering of the sub-components which should be printing; any sub-components filtered out will be elided with ....

  • ShowIface

    Everything including GHC-internal information (used in --show-iface)

Instances1Outputable

This is the byte tag we expect to read when the next value is not an IfaceType value, but an offset into a lookup table. See Note [Deduplication during iface binary serialisation].

Must not overlap with any byte tag in getIfaceType.

Prints "(C a, D b) =>", including the arrow. Used when we want to print a context in a type, so we use funPrec to decide whether to parenthesise a singleton predicate; e.g. Num a => a -> a