API glossary
On this page
Kinds, modifiers and package labels in the Haskell API reference. Select an annotation or full API badge to open its definition here.
The signature and entry documentation describe the API’s behavior, including its calling conventions, storage and runtime checks.
Symbol kinds#
Kinds identify declarations in the Haskell API reference.
module#
A named Haskell module that imports and exports declarations.
A module qualifies names such as LibTmux.Id.parsePaneId. Documentation ownership by a data type does not add that type to the source name.
References: Haskell modules .
data type#
A distinct Haskell type introduced by a data or newtype declaration.
An opaque Haddock data header exposes the type name without revealing whether its implementation uses data or newtype.
References: Haskell datatype declarations .
data constructor#
A Haskell value constructor that builds one form of a data type.
Constructors can carry fields and appear in patterns. A qualified constructor takes its module name, not its data type name.
References: Haskell algebraic datatypes .
record field#
A Haskell record label used in construction, update and pattern matching.
The qualified modules use NoFieldSelectors. Their exported record labels do not generate top-level selector functions.
References: GHC field selectors .
function#
A Haskell binding with a function type, applied to arguments by juxtaposition.
Arguments are curried. Acquisition and mutation require an explicit effect such as IO in the signature.
References: Haskell function bindings .
Modifiers#
Modifiers add information about calling, implementing, or accessing a declaration. Their precise effect follows the language and the signature.
opaque#
A Haskell type exported without its data constructors.
Callers use exported operations rather than hidden constructors or representation. This does not establish whether the implementation uses data or newtype.
References: Haskell abstract datatypes .
Package context#
Package labels identify where an API is supplied.
package#
The Cabal package supplying these exposed Haskell modules.
A package name and a module name are different identities. Availability from source does not imply publication on Hackage.
References: Cabal package descriptions .