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