Library
Module
Module type
Parameter
Class
Class type
Phantom algebra interfaces
This modules provides the interface implemented by the core module, splits in smaller logical units.
There are intended to be used by people interested by the type-level interface but not by the simple OCaml implementation provided.
module type Core = sig ... end
The two following module types provide a definition for indices and their associated type-level values and the indexing and slicing functions.
module type Index = sig ... end
Index data type
module type Indexing = sig ... end
module type Basic = sig ... end
Some useful linear algebra values and functions
The following functions are useful when writing higher functions of which the output depends on the dimension or the rank, or with input of arbitrary dimensions or ranks. Note that type errors often become atrocious in this use case
module type Rank = sig ... end
Rank-related types
module type Dim = sig ... end
Dimension-related types
module type Matching = sig ... end
module type Cloning = sig ... end
Cloning a value is useful to duplicate the type-level information associated to this value when this value is provided as an function argument. This useful when using multiple time this value with functions performing different type-level computations.
The module type S
combines all previous interface together.
module type S = sig ... end