module type S = sig .. end
sig
end
type 'a m
'a
val bind : 'a m -> ('a -> 'b m) -> 'b m
'a m -> ('a -> 'b m) -> 'b m
bind m f executes first m then f, using the result of m.
bind m f
m
f
val return : 'a -> 'a m
'a -> 'a m