Cf_monad.TrinaryA trinary monad is a type with a single return parameter, which encapsulates a value of polymorphic type with two parameters.
module type Basis = Core.Trinary.BasisUse module B: Basis = struct ... end to define a module B that implements the core type and functions of a monad.
module type Profile = sig ... endThe signature of modules produced by the Create(B: Basis) functor.