type (!'a, !'b) t = ('a, 'b) result
val ok : 'a -> ('a, 'b) result
val error : 'b -> ('a, 'b) result
val reword_error : ('b -> 'c) -> ('a, 'b) result -> ('a, 'c) result
val get_ok : ('a, 'b) result -> 'a
val get_error : ('a, 'b) result -> 'b
val return : 'a -> ('a, 'b) result
val fail : 'b -> ('a, 'b) result
val (>>|) : ('a, 'b) result -> ('a -> 'c) -> ('c, 'b) result
module Infix : sig ... end
type msg = [
| `Msg of string
]
val msg : string -> [> msg ]
val error_msg : string -> ('a, [> msg ]) result
val error_msg_to_invalid_arg : ('a, msg) result -> 'a
val failwith_error_msg : ('a, msg) result -> 'a
val is_ok : ('a, 'b) result -> bool
val is_error : ('a, 'b) result -> bool
val equal :
ok:('a -> 'a -> bool) ->
error:('b -> 'b -> bool) ->
('a, 'b) result ->
('a, 'b) result ->
bool
val compare :
ok:('a -> 'a -> int) ->
error:('b -> 'b -> int) ->
('a, 'b) result ->
('a, 'b) result ->
int
val to_option : ('a, 'b) result -> 'a option
val of_option : none:(unit -> ('a, 'b) result) -> 'a option -> ('a, 'b) result
val to_presult : ('a, 'b) result -> [> `Error of 'b | `Ok of 'a ]
val of_presult : [< `Error of 'b | `Ok of 'a ] -> ('a, 'b) result
val ignore_error : use:('b -> 'a) -> ('a, 'b) result -> 'a