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

GHC 10.0.0.20260917 · lts/ghc-10.0.x · 8174fa4 · 2026-10-11

Moduleghc-10.0.0.20260917GHC2024

GHC.Iface.Ext.Types

  • 29 types
  • 9 values
datadata HieFile
#

GHC builds up a wealth of information about Haskell source as it compiles it. .hie files are a way of persisting some of this information to disk so that external tools that need to work with haskell source don't need to parse, typecheck, and rename all over again. These files contain:

  • a simplified AST

    • nodes are annotated with source positions and types

    • identifiers are annotated with scope information

  • the raw bytes of the initial Haskell source

Besides saving compilation cycles, .hie files also offer a more stable interface than the GHC API.

Constructors

Instances1Binary
  • Binary HieFileDefined in ghc-10.0.0.20260917 · GHC.Iface.Ext.Types
datadata HieType a
#

A flattened version of Type.

See Note [Efficient serialization of redundant type info]

Constructors

Instances5Functor, Foldable, Traversable, Eq, Binary
newtypenewtype HieArgs a
#

A list of type arguments along with their respective visibilities (ie. is this an argument that would return True for isVisibleForAllTyFlag?).

Constructors

Instances5Functor, Foldable, Traversable, Eq, Binary
newtypenewtype HieASTs a
#

Mapping from filepaths to the corresponding AST

Constructors

Instances5Functor, Foldable, Traversable, Outputable, Binary
datadata HieAST a
#
Instances5Functor, Foldable, Traversable, Outputable, Binary
newtypenewtype SourcedNodeInfo a
#

NodeInfos grouped by source

Instances5Functor, Foldable, Traversable, Outputable, Binary
datadata NodeAnnotation
#

A node annotation

Constructors

Instances4Eq, Ord, Outputable, Binary
datadata NodeInfo a
#

The information stored in one AST node.

The type parameter exists to provide flexibility in representation of types (see Note [Efficient serialization of redundant type info]).

Constructors

Instances5Functor, Foldable, Traversable, Outputable, Binary
datadata IdentifierDetails a
#

Information associated with every identifier

We need to include types with identifiers because sometimes multiple identifiers occur in the same span(Overloaded Record Fields and so on)

Instances8Functor, Foldable, Traversable, Eq, Semigroup, Monoid, …
datadata ContextInfo
#

Different contexts under which identifiers exist

Constructors

Instances4Eq, Ord, Outputable, Binary
datadata EvVarSource
#

Constructors

Instances4Eq, Ord, Outputable, Binary
newtypenewtype EvBindDeps
#

Eq/Ord instances compare on the converted HieName, as non-exported names may have different uniques after a roundtrip

Constructors

Instances4Eq, Ord, Outputable, Binary
datadata DeclType
#

Constructors

Instances5Enum, Eq, Ord, Outputable, Binary
  • Enum DeclTypeDefined in ghc-10.0.0.20260917 · GHC.Iface.Ext.Types
  • Eq DeclTypeDefined in ghc-10.0.0.20260917 · GHC.Iface.Ext.Types
  • Ord DeclTypeDefined in ghc-10.0.0.20260917 · GHC.Iface.Ext.Types
  • Outputable DeclTypeDefined in ghc-10.0.0.20260917 · GHC.Iface.Ext.Types
  • Binary DeclTypeDefined in ghc-10.0.0.20260917 · GHC.Iface.Ext.Types
datadata TyVarScope
#

Scope of a type variable.

This warrants a data type apart from Scope because of complexities introduced by features like -XScopedTypeVariables and -XInstanceSigs. For example, consider:

foo, bar, baz :: forall a. a -> a

Here a is in scope in all the definitions of foo, bar, and baz, so we need a list of scopes to keep track of this. Furthermore, this list cannot be computed until we resolve the binding sites of foo, bar, and baz.

Consequently, a starts with an UnresolvedScope [foo, bar, baz] Nothing which later gets resolved into a ResolvedScopes.

Constructors

Instances4Eq, Ord, Outputable, Binary
datadata EntityInfo
#

Entity information EntityInfo is a simplified version of TyThing and richer version than Namespace in OccName. It state the kind of the entity, such as Variable, TypeVariable, DataConstructor, etc..

Instances6Enum, Eq, Ord, Show, Outputable, Binary