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