sig   type ('a, 'b) result = ('a, 'b) result = Ok of '| Error of 'b   type 'a sequence = ('-> unit) -> unit   type 'a equal = '-> '-> bool   type 'a ord = '-> '-> int   type 'a printer = Format.formatter -> '-> unit   type ('good, 'bad) t =     ('good, 'bad) Result.result =       Ok of 'good     | Error of 'bad   val return : '-> ('a, 'err) t   val fail : 'err -> ('a, 'err) t   val of_exn : exn -> ('a, string) t   val of_exn_trace : exn -> ('a, string) t   val fail_printf : ('a, Buffer.t, unit, ('a, string) t) format4 -> 'a   val fail_fprintf :     ('a, Format.formatter, unit, ('a, string) t) format4 -> 'a   val map : ('-> 'b) -> ('a, 'err) t -> ('b, 'err) t   val map_err : ('err1 -> 'err2) -> ('a, 'err1) t -> ('a, 'err2) t   val map2 : ('-> 'b) -> ('err1 -> 'err2) -> ('a, 'err1) t -> ('b, 'err2) t   val iter : ('-> unit) -> ('a, 'b) t -> unit   exception Get_error   val get_exn : ('a, 'b) t -> 'a   val get_or : ('a, 'b) t -> default:'-> 'a   val map_or : ('-> 'b) -> ('a, 'c) t -> default:'-> 'b   val catch : ('a, 'err) t -> ok:('-> 'b) -> err:('err -> 'b) -> 'b   val flat_map : ('-> ('b, 'err) t) -> ('a, 'err) t -> ('b, 'err) t   val ( >|= ) : ('a, 'err) t -> ('-> 'b) -> ('b, 'err) t   val ( >>= ) : ('a, 'err) t -> ('-> ('b, 'err) t) -> ('b, 'err) t   val equal : ?err:'err equal -> 'a equal -> ('a, 'err) t equal   val compare : ?err:'err ord -> 'a ord -> ('a, 'err) t ord   val fold : ok:('-> 'b) -> error:('err -> 'b) -> ('a, 'err) t -> 'b   val is_ok : ('a, 'err) t -> bool   val is_error : ('a, 'err) t -> bool   val guard : (unit -> 'a) -> ('a, exn) t   val guard_str : (unit -> 'a) -> ('a, string) t   val guard_str_trace : (unit -> 'a) -> ('a, string) t   val wrap1 : ('-> 'b) -> '-> ('b, exn) t   val wrap2 : ('-> '-> 'c) -> '-> '-> ('c, exn) t   val wrap3 : ('-> '-> '-> 'd) -> '-> '-> '-> ('d, exn) t   val pure : '-> ('a, 'err) t   val ( <*> ) : ('-> 'b, 'err) t -> ('a, 'err) t -> ('b, 'err) t   val join : (('a, 'err) t, 'err) t -> ('a, 'err) t   val both : ('a, 'err) t -> ('b, 'err) t -> ('a * 'b, 'err) t   module Infix = CCResult.Infix   val map_l : ('-> ('b, 'err) t) -> 'a list -> ('b list, 'err) t   val fold_l : ('-> '-> ('b, 'err) t) -> '-> 'a list -> ('b, 'err) t   val fold_seq :     ('-> '-> ('b, 'err) t) -> '-> 'a sequence -> ('b, 'err) t   val choose : ('a, 'err) t list -> ('a, 'err list) t   val retry : int -> (unit -> ('a, 'err) t) -> ('a, 'err list) t   module type MONAD =     sig       type 'a t       val return : '-> 'a t       val ( >>= ) : 'a t -> ('-> 'b t) -> 'b t     end   module Traverse = CCResult.Traverse   val to_opt : ('a, 'b) t -> 'a option   val of_opt : 'a option -> ('a, string) t   val to_seq : ('a, 'b) t -> 'a sequence   type ('a, 'b) error = [ `Error of '| `Ok of 'a ]   val of_err : ('a, 'b) error -> ('a, 'b) t   val to_err : ('a, 'b) t -> ('a, 'b) error   val pp : 'a printer -> ('a, string) t printer   val pp' : 'a printer -> 'e printer -> ('a, 'e) t printer end