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