`sig
type ('a, 'b) t = ('a, 'b) BatPervasives.result = Ok of 'a | Bad of 'b
val catch : ('a -> 'b) -> 'a -> ('b, exn) t
val catch2 : ('a -> 'b -> 'c) -> 'a -> 'b -> ('c, exn) t
val catch3 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'b -> 'c -> ('d, exn) t
val get : ('a, exn) t -> 'a
val default : 'a -> ('a, 'b) t -> 'a
val map_default : 'b -> ('a -> 'b) -> ('a, 'c) t -> 'b
val is_ok : ('a, 'b) t -> bool
val is_bad : ('a, 'b) t -> bool
val is_exn : exn -> ('a, exn) t -> bool
val of_option : 'a option -> ('a, unit) t
val to_option : ('a, 'b) t -> 'a option
module Monad :
sig
val bind : ('a, 'b) t -> ('a -> ('c, 'b) t) -> ('c, 'b) t
val ( >>= ) : ('a, 'b) t -> ('a -> ('c, 'b) t) -> ('c, 'b) t
val return : 'a -> ('a, 'b) t
end
module Infix :
sig val ( >>= ) : ('a, 'b) t -> ('a -> ('c, 'b) t) -> ('c, 'b) t end
val print :
('b BatInnerIO.output -> 'a -> unit) ->
'b BatInnerIO.output -> ('a, exn) t -> unit
end`