include sig ... endval sexp_of_t : t ‑> Sexplib.Sexp.tval typerep_of_t : t Typerep_lib.Std.Typerep.tval typename_of_t : t Typerep_lib.Std.Typename.tinclude Core__.Import.Identifiable with type t := tinclude sig ... endval t_of_sexp : Sexplib.Sexp.t ‑> tval sexp_of_t : t ‑> Sexplib.Sexp.tval bin_t : t Bin_prot.Type_class.tval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (Core_kernel__.Import.int ‑> t) Bin_prot.Read.readerval bin_reader_t : t Bin_prot.Type_class.readerval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_writer_t : t Bin_prot.Type_class.writerval bin_shape_t : Bin_prot.Shape.tinclude Core_kernel__.Import.Stringable.S with type t := tval of_string : string ‑> tval to_string : t ‑> stringinclude Core_kernel.Comparable.S_binable with type t := tinclude Core_kernel__.Comparable_intf.S_commoninclude Base.Comparable_intf.Sinclude Base.Comparable_intf.Polymorphic_compareascending is identical to compare. descending x y = ascending y x. These are
intended to be mnemonic when used like List.sort ~cmp:ascending and List.sort
~cmp:descending, since they cause the list to be sorted in ascending or descending
order, respectively.
clamp_exn t ~min ~max returns t', the closest value to t such that
between t' ~low:min ~high:max is true.
Raises if not (min <= max).
val clamp : t ‑> min:t ‑> max:t ‑> t Base.Or_error.tinclude Base.Comparator.S with type t := tval comparator : (t, comparator_witness) Base.Comparator.comparatorinclude Base.Comparable_intf.Validate with type t := tval validate_lbound : min:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_ubound : max:t Base.Maybe_bound.t ‑> t Base.Validate.checkval validate_bound : min:t Base.Maybe_bound.t ‑> max:t Base.Maybe_bound.t ‑> t Base.Validate.checkmodule Replace_polymorphic_compare : Core_kernel__.Comparable_intf.Polymorphic_compare with type t := tinclude Core_kernel__.Comparable_intf.Map_and_set_binable with type t := t with type comparator_witness := comparator_witnessinclude Core_kernel.Comparator.S with type t := tval comparator : (t, comparator_witness) Core_kernel.Comparator.comparatormodule Map : Core_kernel__.Core_map.S_binable with type Key.t = t with type Key.comparator_witness = comparator_witnessmodule Set : Core_kernel__.Core_set.S_binable with type Elt.t = t with type Elt.comparator_witness = comparator_witnessinclude Core_kernel.Hashable.S_binable with type t := tval hash : t ‑> Core_kernel__.Import.intval hashable : t Core_kernel.Hashable.Hashtbl.Hashable.tmodule Table : Core_kernel.Hashable.Hashtbl.S_binable with type key = tmodule Hash_set : Core_kernel.Hash_set.S_binable with type elt = tmodule Hash_queue : Core_kernel.Hash_queue.S with type Key.t = tinclude Core_kernel__.Import.Pretty_printer.S with type t := tval pp : Caml.Format.formatter ‑> t ‑> unitinclude Core__.Import.Comparable.With_zero with type t := tval validate_positive : t Base.Validate.checkval validate_non_negative : t Base.Validate.checkval validate_negative : t Base.Validate.checkval validate_non_positive : t Base.Validate.checkval is_positive : t ‑> boolval is_non_negative : t ‑> boolval is_negative : t ‑> boolval is_non_positive : t ‑> boolval sign : t ‑> Base__.Sign0.tReturns Neg, Zero, or Pos in a way consistent with the above functions.
val nanosecond : tval microsecond : tval millisecond : tval second : tval minute : tval hour : tval day : tval of_ns : float ‑> tval of_us : float ‑> tval of_ms : float ‑> tval of_sec : float ‑> tval of_min : float ‑> tval of_hr : float ‑> tval of_day : float ‑> tval to_ns : t ‑> floatval to_us : t ‑> floatval to_ms : t ‑> floatval to_sec : t ‑> floatval to_min : t ‑> floatval to_hr : t ‑> floatval to_day : t ‑> floatval of_int_us : int ‑> tval of_int_ms : int ‑> tval of_int_sec : int ‑> tval to_int_us : t ‑> intval to_int_ms : t ‑> intval to_int_sec : t ‑> intval zero : tval min_value : tval max_value : tval div : t ‑> t ‑> Core__.Import.Int63.tval create : ?sign:Core__.Import.Sign.t ‑> ?day:int ‑> ?hr:int ‑> ?min:int ‑> ?sec:int ‑> ?ms:int ‑> ?us:int ‑> ?ns:int ‑> unit ‑> tOverflows silently.
val to_short_string : t ‑> stringval to_unit_of_time : t ‑> Core__.Import.Unit_of_time.tval of_unit_of_time : Core__.Import.Unit_of_time.t ‑> tval to_string_hum : ?delimiter:char ‑> ?decimals:int ‑> ?align_decimal:bool ‑> ?unit_of_time:Core__.Import.Unit_of_time.t ‑> t ‑> stringSee Time.Span.to_string_hum.
val to_span : t ‑> Core__.Import_time.Time.Span.tTime.t is precise to approximately 0.24us in 2014. If to_span converts to the
closest Time.Span.t, we have stability problems: converting back yields a
different t, sometimes different enough to have a different external
representation, because the conversion back and forth crosses a rounding boundary.
To stabilize conversion, we treat Time.t as having 1us precision: to_span and
of_span both round to the nearest 1us.
Around 135y magnitudes, Time.Span.t no longer has 1us resolution. At that point,
to_span and of_span raise.
The concern with stability is in part due to an earlier incarnation of
Timing_wheel that had surprising behavior due to rounding of floating-point times.
Timing_wheel was since re-implemented to use integer Time_ns, and to treat
floating-point Times as equivalence classes according to the Time_ns that they
round to. See Timing_wheel_float for details.
val of_span : Core__.Import_time.Time.Span.t ‑> tval to_int_ns : t ‑> intWill raise on 32-bit platforms with spans corresponding to contemporary now.
Consider to_int63_ns instead.
val of_int_ns : int ‑> tval to_proportional_float : t ‑> floatThe only condition to_proportional_float is supposed to satisfy is that for all
t1, t2 : t: to_proportional_float t1 /. to_proportional_float t2 = t1 // t2.
module Stable : sig ... endval random : ?state:Core__.Import.Random.State.t ‑> unit ‑> tmodule Option : sig ... endSpan.Option.t is like Span.t option, except that the value is immediate. This
module should mainly be used to avoid allocations.