sig
  module V1 :
    sig
      module Helpers = V1.Helpers
      module T = V1.T
      val float_of_hh_mm_ss : int -> int -> float -> float
      val to_tm : T.t -> Unix.tm
      val to_tm_utc : T.t -> Unix.tm
      val utc_mktime :
        year:int -> month:int -> day:int -> ofday_sec:float -> float
      val to_epoch : T.t -> float
      module Epoch_cache = V1.Epoch_cache
      val of_epoch_internal :
        Zone.t ->
        Core_kernel.Std.Float.t -> Epoch_cache.t * (Date.t * Ofday.t)
      val of_epoch : Zone.t -> float -> Date.t * Ofday.t
      val to_date_ofday : T.t -> zone:Zone.t -> Date.t * Ofday.t
      val of_date_ofday : Date.t -> Ofday.t -> zone:Zone.t -> T.t
      val of_date_ofday_precise :
        Date.t ->
        Ofday.t ->
        zone:Zone.t ->
        [> `Never of Time_internal.T.t | `Once of T.t | `Twice of T.t * T.t ]
      val to_date : T.t -> zone:Zone.t -> Date.t
      val to_ofday : T.t -> zone:Zone.t -> Ofday.t
      val convert :
        from_tz:Zone.t ->
        to_tz:Zone.t -> Date.t -> Ofday.t -> Date.t * Ofday.t
      val utc_offset : T.t -> zone:Zone.t -> Span.t
      val offset_string : T.t -> zone:Zone.t -> Core_kernel.Std.String.t
      val to_string_abs_parts :
        T.t -> zone:Zone.t -> Core_kernel.Std.String.t list
      val to_string_abs_trimmed :
        T.t -> zone:Zone.t -> Core_kernel.Std.String.t
      val to_string_abs : T.t -> zone:Zone.t -> Core_kernel.Std.String.t
      val to_string_trimmed : T.t -> zone:Zone.t -> string
      val to_sec_string : T.t -> zone:Zone.t -> string
      val to_filename_string : T.t -> zone:Zone.t -> string
      val to_string_fix_proto : [< `Local | `Utc ] -> T.t -> string
      val of_string_fix_proto :
        [< `Local | `Utc ] -> Core_kernel.Std.String.t -> T.t
      val of_filename_string : Core_kernel.Std.String.t -> zone:Zone.t -> T.t
      val format : T.t -> string -> string
      val pause_for : Span.t -> [> `Ok | `Remaining of Span.t ]
      val pause : Span.t -> unit
      val interruptible_pause : Span.t -> [> `Ok | `Remaining of Span.t ]
      val pause_forever : unit -> 'a
      val occurrence :
        [< `First_after_or_at | `Last_before_or_at ] ->
        T.t -> ofday:Ofday.t -> zone:Zone.t -> T.t
      val epoch : T.t
      type t = Time_internal.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 equal : t -> t -> bool
      val compare : t -> t -> int
      val min : t -> t -> t
      val max : t -> t -> t
      val ascending : t -> t -> int
      val descending : t -> t -> int
      val between : t -> low:t -> high:t -> bool
      module Replace_polymorphic_compare = V1.Replace_polymorphic_compare
      type comparator_witness = Time_internal.T.comparator_witness
      val comparator :
        (t, comparator_witness) Core_kernel.Comparator.comparator
      val validate_lbound :
        min:t Core_kernel.Comparable_intf.bound ->
        t Core_kernel.Validate.check
      val validate_ubound :
        max:t Core_kernel.Comparable_intf.bound ->
        t Core_kernel.Validate.check
      val validate_bound :
        min:t Core_kernel.Comparable_intf.bound ->
        max:t Core_kernel.Comparable_intf.bound ->
        t Core_kernel.Validate.check
      val hash : t -> int
      val hashable : t Core_kernel.Hashable.Hashtbl.Hashable.t
      module Table = V1.Table
      module Hash_set = V1.Hash_set
      module Hash_queue = V1.Hash_queue
      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 of_float : float -> t
      val to_float : t -> float
      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 now : unit -> t
      val bin_t : t Core_kernel.Std.Bin_prot.Type_class.t
      val bin_read_t : t Core_kernel.Std.Bin_prot.Read.reader
      val __bin_read_t__ : (int -> t) Core_kernel.Std.Bin_prot.Read.reader
      val bin_reader_t : t Core_kernel.Std.Bin_prot.Type_class.reader
      val bin_size_t : t Core_kernel.Std.Bin_prot.Size.sizer
      val bin_write_t : t Core_kernel.Std.Bin_prot.Write.writer
      val bin_writer_t : t Core_kernel.Std.Bin_prot.Type_class.writer
      val to_string : T.t -> Core_kernel.Std.String.t
      exception Time_of_string of string * Core_kernel.Std.Exn.t
      exception Time_string_not_absolute of string
      val of_string_gen :
        require_absolute:bool -> Core_kernel.Std.String.t -> T.t
      val of_string_abs : Core_kernel.Std.String.t -> T.t
      val of_string : Core_kernel.Std.String.t -> T.t
      val t_of_sexp_gen : Core_kernel.Std.Sexp.t -> (string -> T.t) -> T.t
      val t_of_sexp : Core_kernel.Std.Sexp.t -> T.t
      val t_of_sexp_abs : Core_kernel.Std.Sexp.t -> T.t
      val sexp_of_t_abs : zone:Zone.t -> T.t -> Core_kernel.Std.Sexp.t
      val sexp_zone : Zone.t ref
      val get_sexp_zone : unit -> Zone.t
      val set_sexp_zone : Zone.t -> unit
      module C = V1.C
      val is_earlier : t -> than:t -> bool
      val is_later : t -> than:t -> bool
      module Map = V1.Map
      module Set = V1.Set
      val pp : Format.formatter -> t -> unit
      val of_localized_string :
        zone:Zone.t -> Core_kernel.Std.String.t -> T.t
      val next_multiple :
        ?can_equal_after:bool ->
        base:t -> after:t -> interval:Span.t -> unit -> t
      val sexp_of_t : T.t -> Core_kernel.Std.Sexp.t
    end
end