# Module Time_ns

    module Time_ns: sig .. end

Time represented as an `Int63.t` number of nanoseconds since the epoch.

    module Span: sig .. end

    type t = private Core_int63.t

    val typerep_of_t : t Typerep_lib.Std.Typerep.t

    val typename_of_t : t Typerep_lib.Std.Typename.t

    include Comparable.Infix

    include Equal.S

    module Alternate_sexp: sig .. end

Note that we expose a sexp format that is not the one exposed in `Core`.

    val epoch : t

Unix epoch (1970-01-01 00:00:00 UTC)

    val min_value : t

    val max_value : t

    val now : unit -> t

    val add : t -> Span.t -> t

    val sub : t -> Span.t -> t

    val diff : t -> t -> Span.t

    val abs_diff : t -> t -> Span.t

    val to_span_since_epoch : t -> Span.t

    val of_span_since_epoch : Span.t -> t

    val to_int63_ns_since_epoch : t -> Core_int63.t

    val of_int63_ns_since_epoch : Core_int63.t -> t

    val to_int_ns_since_epoch : t -> int

Will raise on 32-bit platforms. Consider `to_int63_ns_since_epoch` instead.

    val of_int_ns_since_epoch : int -> t

    val next_multiple : ?can_equal_after:bool ->
           base:t ->
           after:t -> interval:Span.t -> unit -> t

`next_multiple ~base ~after ~interval` returns the smallest `time` of the form:

          time = base + k * interval

where `k >= 0` and `time > after`. It is an error if `interval <= 0`.

Supplying `~can_equal_after:true` allows the result to satisfy `time >= after`.

    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

Note that we expose a sexp format that is not the one exposed in `Core`.
Unix epoch (1970-01-01 00:00:00 UTC)
Will raise on 32-bit platforms. Consider `to_int63_ns_since_epoch` instead.
`next_multiple ~base ~after ~interval` returns the smallest `time` of the form:

          time = base + k * interval

where `k >= 0` and `time > after`. It is an error if `interval <= 0`.

Supplying `~can_equal_after:true` allows the result to satisfy `time >= after`.
default is `false`