val return : 'a -> 'a t
The map
argument to Monad.Make
says how to implement the monad's map
function. `Define_using_bind
means to define map t ~f = bind t ~f:(fun a -> return (f a))
. `Custom
overrides the default implementation, presumably with something more efficient.
Some other functions returned by Monad.Make
are defined in terms of map
, so passing in a more efficient map
will improve their efficiency as well.