Module type Monad.Basic
val map : [ `Define_using_bind | `Custom of 'a t -> f:('a -> 'b) -> 'b t ]
The
map
argument toMonad.Make
says how to implement the monad'smap
function.`Define_using_bind
means to definemap 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 ofmap
, so passing in a more efficientmap
will improve their efficiency as well.