sig
  type t = unit t
  val create_ok : unit -> t
  val create_error : Unix_error.t -> t
  val is_ok : t -> bool
  val is_error : t -> bool
  val to_result : t -> (unit, Unix_error.t) Core_kernel.Std.Result.t
  val ok_exn : t -> unit
  val error_exn : t -> Unix_error.t
  val reinterpret_error_exn : t -> 'a t
  val ok_or_unix_error_exn : t -> syscall_name:string -> unit
  val ok_or_unix_error_with_args_exn :
    t -> syscall_name:string -> '-> ('-> Core_kernel.Std.Sexp.t) -> unit
  val sexp_of_t : t -> Sexplib.Sexp.t
  val compare : t -> t -> int
end