module type T =sig
..end
type 'a
t
val bind : 'a t -> ('a -> 'b t) -> 'b t
val return : 'a -> 'a t
val fmap : ('a -> 'b) -> 'a t -> 'b t
val fmap2 : ('a -> 'b -> 'c) -> 'a t -> 'b t -> 'c t
val fmap3 : ('a -> 'b -> 'c -> 'd) ->
'a t -> 'b t -> 'c t -> 'd t
val fmap4 : ('a -> 'b -> 'c -> 'd -> 'e) ->
'a t ->
'b t -> 'c t -> 'd t -> 'e t
val fmap5 : ('a -> 'b -> 'c -> 'd -> 'e -> 'f) ->
'a t ->
'b t ->
'c t -> 'd t -> 'e t -> 'f t