sig
  type 'a res = Ok of '| Err of (Format.formatter -> unit)
  val unwrap : 'Res.res -> 'a
  val map_res :
    ('-> 'b) ->
    ((Format.formatter -> unit) -> Format.formatter -> unit) ->
    'Res.res -> 'Res.res
  val map : ('-> 'b) -> 'Res.res -> 'Res.res
  val map_err :
    ((Format.formatter -> unit) -> Format.formatter -> unit) ->
    'Res.res -> 'Res.res
  val chain :
    ?fmt:((Format.formatter -> unit) -> Format.formatter -> unit) ->
    ('-> 'Res.res) -> 'Res.res -> 'Res.res
  val l_fold :
    ?fmt:((Format.formatter -> unit) -> Format.formatter -> unit) ->
    ('acc -> '-> 'acc Res.res) -> 'acc -> 'a list -> 'acc Res.res
  val l_map :
    ?fmt:((Format.formatter -> unit) -> Format.formatter -> unit) ->
    ('-> 'Res.res) -> 'a list -> 'b list Res.res
  val l_iter :
    ?fmt:((Format.formatter -> unit) -> Format.formatter -> unit) ->
    ('-> unit Res.res) -> 'a list -> unit Res.res
end