sig
  type t = Time_ns.Span.t
  val typerep_of_t : t Typerep_lib.Std.Typerep.t
  val typename_of_t : t Typerep_lib.Std.Typename.t
  val ( >= ) : t -> t -> bool
  val ( <= ) : t -> t -> bool
  val ( = ) : t -> t -> bool
  val ( > ) : t -> t -> bool
  val ( < ) : t -> t -> bool
  val ( <> ) : t -> t -> bool
  val validate_lbound : min:t Comparable_intf.bound -> t Validate.check
  val validate_ubound : max:t Comparable_intf.bound -> t Validate.check
  val validate_bound :
    min:t Comparable_intf.bound ->
    max:t Comparable_intf.bound -> t Validate.check
  val validate_positive : t Validate.check
  val validate_non_negative : t Validate.check
  val validate_negative : t Validate.check
  val validate_non_positive : t Validate.check
  val is_positive : t -> bool
  val is_non_negative : t -> bool
  val is_negative : t -> bool
  val is_non_positive : t -> bool
  val equal : t Equal.equal
  val nanosecond : t
  val microsecond : t
  val millisecond : t
  val second : t
  val minute : t
  val hour : t
  val day : t
  val of_ns : float -> t
  val of_us : float -> t
  val of_ms : float -> t
  val of_sec : float -> t
  val of_min : float -> t
  val of_hr : float -> t
  val of_day : float -> t
  val to_ns : t -> float
  val to_us : t -> float
  val to_ms : t -> float
  val to_sec : t -> float
  val to_min : t -> float
  val to_hr : t -> float
  val to_day : t -> float
  val of_sec_with_microsecond_precision : float -> t
  val of_int_sec : int -> t
  val to_int_sec : t -> int
  val zero : t
  val min_value : t
  val max_value : t
  val ( + ) : t -> t -> t
  val ( - ) : t -> t -> t
  val abs : t -> t
  val neg : t -> t
  val scale : t -> float -> t
  val scale_int : t -> int -> t
  val scale_int63 : t -> Core_int63.t -> t
  val div : t -> t -> Core_int63.t
  val ( / ) : t -> float -> t
  val ( // ) : t -> t -> float
  val create :
    ?sign:Float.Sign.t ->
    ?day:int ->
    ?hr:int ->
    ?min:int -> ?sec:int -> ?ms:int -> ?us:int -> ?ns:int -> unit -> t
  module Parts = Time_ns.Span.Parts
  val to_parts : t -> Parts.t
  val of_parts : Parts.t -> t
  val ( >=. ) : t -> t -> bool
  val ( <=. ) : t -> t -> bool
  val ( =. ) : t -> t -> bool
  val ( >. ) : t -> t -> bool
  val ( <. ) : t -> t -> bool
  val ( <>. ) : t -> t -> bool
  val robustly_compare : t -> t -> int
  val to_int63_ns : t -> Core_int63.t
  val of_int63_ns : Core_int63.t -> t
  val to_int_ns : t -> int
  val of_int_ns : int -> t
  val since_unix_epoch : unit -> t
  module Alternate_sexp = Time_ns.Span.Alternate_sexp
  val bin_t : t Bin_prot.Type_class.t
  val bin_read_t : t Bin_prot.Read.reader
  val __bin_read_t__ : (int -> t) Bin_prot.Read.reader
  val bin_reader_t : t Bin_prot.Type_class.reader
  val bin_size_t : t Bin_prot.Size.sizer
  val bin_write_t : t Bin_prot.Write.writer
  val bin_writer_t : t Bin_prot.Type_class.writer
  val compare : t -> t -> int
  val t_of_sexp : Sexplib.Sexp.t -> t
  val sexp_of_t : t -> Sexplib.Sexp.t
end