sig
  type ('a, 'b) t = Good of '| Bad of 'b
  val wrap : ('-> 'b) -> '-> ('b, exn) Signatures.OUTCOME.t
  val ignore_good : ('a, exn) Signatures.OUTCOME.t -> unit
  val good : ('a, exn) Signatures.OUTCOME.t -> 'a
end