package olmi

  1. Overview
  2. Docs

This module provides all interfaces using for the functors.

Monadics operation could be generated with two ways : using an interface with a parametrized type, return and bind. Or using an interface with a parametrized type, return, join and fmap. A lot of those function's description come from the Haskell documentation

module type COMMON = sig ... end

The common API for creating a Monad

module type BIND = sig ... end

Describe the minimal interface for making a monad with bind function. This module could be used by OmlMonad.Make.WithBind to generate a BASIC_INTERFACE Module, for example.

module type JOIN = sig ... end

Describe the minimal interface for making a monad with join function. This module could be used by OmlMonad.Make.WithJoin to generate a BASIC_INTERFACE Module, for example.

module type BASIC_INTERFACE = sig ... end

Describe a conjunction between join and bin. This module could be used by OmlMonad.Make.Base to generate a BASIC_INTERFACE Module, for example.

module type INFIX = sig ... end

Provide the signatures of all infix operators (linked to a Monad)

module type LIFT = sig ... end

Provide interface for the lift operations

module type INTERFACE = sig ... end

Provide the complete interface of monadic operations

module type PLUS = sig ... end

Provide the minimal interface for a Monad Plus

module type PLUS_INTERFACE = sig ... end

Provide a complete interface for Monad plus