Commentary/Abbreviations

Version 26 (modified by dterei, 23 months ago)

--

GHC Source Code Abbreviations

Certain abbreviations are used pervasively throughout the GHC source code. This page gives a partial list of them and their expansion:

* ANF: A-normal form

* Class: Type Class

* Cmm: The final IR used in GHC, based on the C-- language

* Core: GHC core language. Based on System FC (variant of System F). Represents a type-checked and desugared program in some (out of several) intermediate compilation step

* !CoreFV: Free variables in core

* CoreLint: Type and sanity-checking of core. (Lint: Jargon for a program analysis that looks for bug-suspicious code.)

* CoreSubst: Substitution in core

* CoreSyn: Core abstract syntax

* DataCon: Data constructor

* Ds: Desugarer

* Gbl: Global

* Hs: Haskell Syntax (generally as opposed to Core, for example, Expr vs HsExpr)

* Hsc: Haskell compiler. Means it Deals with compiling a single module and no more.

* HsSyn: Haskell abstract syntax

* Id: Synonym for Var, but indicating a term variable

* Iface: Interface, as in Haskell interface (.hi) files

* IfaceSyn: Interface abstract syntax

* LHs: Located Haskell something

* Loc: Location, as in SrcLoc

* Located: Something annotated with a SrcSpan

* Lcl: Local

* !nativeGen: Native code generator (generates assembly from Cmm)

* Occ: Occurrence

  • However, in the context of  OccName, "occurrence" actually means "classified (i.e. as a type name, value name, etc) but not qualified and not yet resolved"

* PId: Package ID

* PprCore: Pretty-printing core

* Rdr: Parser (or reader)

* Rn: Rename or Renamer

* Rts: Run Time System

* SimplCore: Simplify core (the so-called simplifier belongs to this, as does the strictness analyser)

* SrcLoc: Source location (filename, line number, character position)

* SrcSpan: Source location span (filename, start line number and character position, end line number and character position)

* Tc: TypeCheck{ing,er}

* TyCon: Type constructor

* TyThing: Something that is type-checkable

* Ty: Type

* TyVar: Synonym for Var, but indicating a type variable

* Var: A variable with some information about its type (or kind)