module Monad: sig .. end
sig
end
type 'a t = 'a
'a
val return : 'a -> 'a
'a -> 'a
val fail : exn -> 'a
exn -> 'a
val bind : 'a -> ('a -> 'b) -> 'b
'a -> ('a -> 'b) -> 'b
val catch : (unit -> 'a) -> (exn -> 'a) -> 'a
(unit -> 'a) -> (exn -> 'a) -> 'a