Module type Monad.Basic

type 'a t
val bind : 'a t -> f:('a -> 'b t) -> 'b t
val return : 'a -> 'a t
val map : [ `Custom of 'a t -> f:('a -> 'b) -> 'b t | `Define_using_bind ]