# API glossary

Source: https://libtmux.org/en/ocaml/latest/reference/glossary/

> Kinds, modifiers and package labels in the OCaml API reference.

## Symbol kinds

Kinds identify declarations in the OCaml API reference.

### module

An OCaml module exposing values, types and nested modules through a signature.

References: [OCaml module types](https://ocaml.org/manual/5.5/modtypes.html#s:modtypes).

### interface

An OCaml module type specifying the declarations a module must provide.

References: [OCaml module types](https://ocaml.org/manual/5.5/modtypes.html#s:modtypes).

### struct

An OCaml record type with named fields.

References: [OCaml type and exception definitions](https://ocaml.org/manual/5.5/typedecl.html#s:tydef).

### enum

An OCaml variant type with named constructors, which can carry values.

References: [OCaml type and exception definitions](https://ocaml.org/manual/5.5/typedecl.html#s:tydef).

### function

An OCaml value with a function type. Arguments are curried and can carry labels or be optional.

References: [OCaml expressions](https://ocaml.org/manual/5.5/expr.html#s:value-expr).

### attribute

A field of an OCaml record. Its module supplies the qualified name; the reference groups it under its declaring type.

References: [OCaml type and exception definitions](https://ocaml.org/manual/5.5/typedecl.html#s:tydef).

### constant

A named OCaml value or variant constructor. The signature does not promise a compile-time constant.

References: [OCaml module types](https://ocaml.org/manual/5.5/modtypes.html#s:modtypes).

### typealias

An OCaml type declaration. A declaration without an equation or representation is abstract.

References: [OCaml type and exception definitions](https://ocaml.org/manual/5.5/typedecl.html#s:tydef).

### exception

An OCaml exception constructor.

References: [OCaml type and exception definitions](https://ocaml.org/manual/5.5/typedecl.html#s:tydef).

## Modifiers

Modifiers add information about calling, implementing, or accessing a declaration. Their precise effect follows the language and the signature.

### opaque

An abstract OCaml type whose representation is hidden by its public signature.

References: [OCaml module types](https://ocaml.org/manual/5.5/modtypes.html#s:modtypes).

## Package context

Package labels identify where an API is supplied.

### package

An installable OCaml library package. Its public modules supply the declarations in this reference.

A package name and an OCaml module path are distinct: libtmux-unix provides Libtmux_unix.

References: [OCaml libraries with Dune](https://ocaml.org/docs/libraries-dune).
