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

GHC 9.14.1 · lts/ghc-9.14.x · 3e2d568 · 2026-10-11

Moduleghc-9.14.1GHC2021

GHC.Unit.Module.ModIface

  • 17 types
  • 85 values
  • Packageghc-9.14.1
  • Exports105
  • LanguageGHC2021
  • LicenceBSD-3-Clause
  • SourceModIface.hs
datadata ModIface_ (phase :: ModIfacePhase)
#

A ModIface summarises everything we know about a compiled module.

See Note [Structure of ModIface] for information about what belongs in each field.

See Note [Strictness in ModIface] to learn about why all the fields are lazy.

See Note [Private fields in ModIface] to learn why we don't export any of the fields.

Instances2Binary, NFData
datadata IfaceBinHandle (phase :: ModIfacePhase) where
#

In-memory byte array representation of a ModIface.

See Note [Sharing of ModIface] for why we need this.

Constructors

datadata IfaceAbiHashes
#

Extends a PartialModIface with hashes of the ABI.

  • The mi_mod_hash is the hash of the entire ABI

  • THe other fields are more specific hashes of parts of the ABI

Constructors

Instances2NFData, Binary
datadata IfaceSelfRecomp
#

The information for a module which is only used when deciding whether to recompile itself.

See Note [Self recompilation information in interface files]

Constructors

Instances3NFData, Outputable, Binary
datadata IfaceCache
#

Constructors

Instances1NFData
datadata IfaceSimplifiedCore
#

The information needed to restart bytecode generation. Enabled by `-fwrite-if-simplified-core`.

Constructors

Instances2NFData, Binary
datadata IfacePublic_ (phase :: ModIfacePhase)
#

The public interface of a module which are used by other modules when importing this module. The ABI of a module.

Constructors

Instances2NFData, Binary
typetype WhetherHasOrphans = Bool
#

Records whether a module has orphans. An "orphan" is one of:

  • An instance declaration in a module other than the definition module for one of the type constructors or classes in the instance head

  • A rewrite rule in a module other than the one defining the function in the head of the rule