sig   type ('a, 'b) result = ('a, 'b) Result.result = Ok of '| Error of 'b   val ( >>= ) :     ('a, 'b) Result.result ->     ('-> ('c, 'b) Result.result) -> ('c, 'b) Result.result   val ( >>| ) :     ('a, 'b) Result.result -> ('-> 'c) -> ('c, 'b) Result.result   module R :     sig       type ('a, 'b) t = ('a, 'b) Result.result       val ok : '-> ('a, 'b) Result.result       val error : '-> ('a, 'b) Result.result       val reword_error :         ('-> 'c) -> ('a, 'b) Result.result -> ('a, 'c) Result.result       val get_ok : ('a, 'b) Result.result -> 'a       val get_error : ('a, 'b) Result.result -> 'b       val return : '-> ('a, 'b) Result.result       val fail : '-> ('a, 'b) Result.result       val bind :         ('a, 'b) Result.result ->         ('-> ('c, 'b) Result.result) -> ('c, 'b) Result.result       val map :         ('-> 'c) -> ('a, 'b) Result.result -> ('c, 'b) Result.result       val join :         (('a, 'b) Result.result, 'b) Result.result -> ('a, 'b) Result.result       val ( >>= ) :         ('a, 'b) Result.result ->         ('-> ('c, 'b) Result.result) -> ('c, 'b) Result.result       val ( >>| ) :         ('a, 'b) Result.result -> ('-> 'c) -> ('c, 'b) Result.result       module Infix :         sig           val ( >>= ) :             ('a, 'b) Result.result ->             ('-> ('c, 'b) Result.result) -> ('c, 'b) Result.result           val ( >>| ) :             ('a, 'b) Result.result -> ('-> 'c) -> ('c, 'b) Result.result         end       type msg = [ `Msg of string ]       val msg : string -> [> Rresult.R.msg ]       val msgf :         ('a, Format.formatter, unit, [> Rresult.R.msg ]) Pervasives.format4 ->         'a       val pp_msg : Format.formatter -> Rresult.R.msg -> unit       val error_msg : string -> ('a, [> Rresult.R.msg ]) Result.result       val error_msgf :         ('a, Format.formatter, unit, ('b, [> Rresult.R.msg ]) Result.result)         Pervasives.format4 -> 'a       val reword_error_msg :         ?replace:bool ->         (string -> Rresult.R.msg) ->         ('a, Rresult.R.msg) Result.result ->         ('a, [> Rresult.R.msg ]) Result.result       val error_to_msg :         pp_error:(Format.formatter -> '-> unit) ->         ('a, 'b) Result.result -> ('a, [> Rresult.R.msg ]) Result.result       val error_msg_to_invalid_arg : ('a, Rresult.R.msg) Result.result -> 'a       val open_error_msg :         ('a, Rresult.R.msg) Result.result ->         ('a, [> Rresult.R.msg ]) Result.result       type exn_trap = [ `Exn_trap of exn * Printexc.raw_backtrace ]       val pp_exn_trap : Format.formatter -> Rresult.R.exn_trap -> unit       val trap_exn :         ('-> 'b) -> '-> ('b, [> Rresult.R.exn_trap ]) Result.result       val error_exn_trap_to_msg :         ('a, Rresult.R.exn_trap) Result.result ->         ('a, [> Rresult.R.msg ]) Result.result       val open_error_exn_trap :         ('a, Rresult.R.exn_trap) Result.result ->         ('a, [> Rresult.R.exn_trap ]) Result.result       val pp :         ok:(Format.formatter -> '-> unit) ->         error:(Format.formatter -> '-> unit) ->         Format.formatter -> ('a, 'b) Result.result -> unit       val dump :         ok:(Format.formatter -> '-> unit) ->         error:(Format.formatter -> '-> unit) ->         Format.formatter -> ('a, 'b) Result.result -> unit       val is_ok : ('a, 'b) Result.result -> bool       val is_error : ('a, 'b) Result.result -> bool       val equal :         ok:('-> '-> bool) ->         error:('-> '-> bool) ->         ('a, 'b) Result.result -> ('a, 'b) Result.result -> bool       val compare :         ok:('-> '-> int) ->         error:('-> '-> int) ->         ('a, 'b) Result.result -> ('a, 'b) Result.result -> int       val to_option : ('a, 'b) Result.result -> 'a option       val of_option :         none:(unit -> ('a, 'b) Result.result) ->         'a option -> ('a, 'b) Result.result       val to_presult :         ('a, 'b) Result.result -> [> `Error of '| `Ok of 'a ]       val of_presult :         [< `Error of '| `Ok of 'a ] -> ('a, 'b) Result.result       val ignore_error : use:('-> 'a) -> ('a, 'b) Result.result -> 'a       val kignore_error :         use:('-> ('a, 'c) Result.result) ->         ('a, 'b) Result.result -> ('a, 'c) Result.result     end end