Cf_monad.BinaryA binary monad is a type with a single return parameter, which encapsulates a value of polymorphic type with one parameter.
module type Basis = Core.Binary.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.