Module Relude_Interface

module type TYPE_ANY = { ... };

Module type signature for a type constructor with a single type hole.

module type FUNCTION_1 = { ... };

Module type which captures a simple a => b function

module type FUNCTION_1_F = (A: BsBastet.Interface.TYPE) => (B: BsBastet.Interface.TYPE) => FUNCTION_1 with type a = A.t and type b = B.t;

Module type functor which captures a simple a => b function

module type NATURAL_TRANSFORMATION = { ... };

Captures a natural tranformation

module type SEQUENCE = { ... };

Module type signature for a module that represents a sequence of values and related functions.

module type ISO_ARRAY = { ... };

Module type signature for a module that is isomorphic with an array

module type ISO_LIST = { ... };

Module type signature for a module that is isomorphic with a list

module type SEMIALIGN = { ... };

Module type signature for Ior-based zipping and unzipping

module type ALIGN = { ... };

Module type signature for an extension of ALIGN that adds an empty nil value.

module type MONAD_THROW = { ... };

Module type signature for a Monad that can produce an error in a monadic context

module type MONAD_ERROR = { ... };

Module type signature for a Monad that can handle an error by creating a new monadic value.

module type LOWER_BOUNDED = { ... };

Represents types that have a lower bound, like strings or positive ints

module type UPPER_BOUNDED = { ... };

Represents types that have an upper bound

module type ENUM = { ... };

Module type which describes a type that can be ordered and for which we can determine a lawful chain of successors and predecessors

module type BOUNDED_ENUM = { ... };

Module type which describes a type that can be ordered and for which we can determine a lawful chain of successors and predecessors, and there is a top and bottom bound.