sig
type ('a, 'b) t = ('a, 'b) Result.t = Ok of 'a | Error of 'b
type ('a, 'b) sexpable = ('a, 'b) t
val sexp_of_t :
('a -> Sexplib.Sexp.t) ->
('b -> Sexplib.Sexp.t) -> ('a, 'b) sexpable -> Sexplib.Sexp.t
val t_of_sexp :
(Sexplib.Sexp.t -> 'a) ->
(Sexplib.Sexp.t -> 'b) -> Sexplib.Sexp.t -> ('a, 'b) sexpable
val bind : ('a, 'b) t -> ('a -> ('c, 'b) t) -> ('c, 'b) t
val return : 'a -> ('a, 'b) t
val is_ok : ('a, 'b) t -> bool
val is_error : ('a, 'b) t -> bool
val iter : f:('a -> unit) -> ('a, 'b) t -> unit
val map : f:('a -> 'b) -> ('a, 'c) t -> ('b, 'c) t
val call : f:('a -> unit, 'b) t -> 'a -> unit
val apply : f:('a -> 'b, 'c) t -> 'a -> ('b, 'c) t
end