sig   type span   module Span :     sig       type t = Ptime.span       val v : int * int64 -> Ptime.span       val zero : Ptime.span       val of_d_ps : int * int64 -> Ptime.span option       val unsafe_of_d_ps : int * int64 -> Ptime.span       val unsafe_of_d_ps_option : (int * int64) option -> Ptime.span option       val to_d_ps : Ptime.span -> int * int64       val of_int_s : int -> Ptime.span       val to_int_s : Ptime.span -> int option       val of_float_s : float -> Ptime.span option       val to_float_s : Ptime.span -> float       val equal : Ptime.span -> Ptime.span -> bool       val compare : Ptime.span -> Ptime.span -> int       val neg : Ptime.span -> Ptime.span       val add : Ptime.span -> Ptime.span -> Ptime.span       val sub : Ptime.span -> Ptime.span -> Ptime.span       val abs : Ptime.span -> Ptime.span       val round : frac_s:int -> Ptime.span -> Ptime.span       val truncate : frac_s:int -> Ptime.span -> Ptime.span       val pp : Format.formatter -> Ptime.span -> unit       val dump : Format.formatter -> Ptime.span -> unit     end   type t   val v : int * int64 -> Ptime.t   val epoch : Ptime.t   val min : Ptime.t   val max : Ptime.t   val of_span : Ptime.span -> Ptime.t option   val to_span : Ptime.t -> Ptime.span   val unsafe_of_d_ps : int * int64 -> Ptime.t   val of_float_s : float -> Ptime.t option   val to_float_s : Ptime.t -> float   val truncate : frac_s:int -> Ptime.t -> Ptime.t   val frac_s : Ptime.t -> Ptime.span   val equal : Ptime.t -> Ptime.t -> bool   val compare : Ptime.t -> Ptime.t -> int   val is_earlier : Ptime.t -> than:Ptime.t -> bool   val is_later : Ptime.t -> than:Ptime.t -> bool   val add_span : Ptime.t -> Ptime.span -> Ptime.t option   val sub_span : Ptime.t -> Ptime.span -> Ptime.t option   val diff : Ptime.t -> Ptime.t -> Ptime.span   type tz_offset_s = int   type date = int * int * int   type time = (int * int * int) * Ptime.tz_offset_s   val of_date_time : Ptime.date * Ptime.time -> Ptime.t option   val to_date_time :     ?tz_offset_s:Ptime.tz_offset_s -> Ptime.t -> Ptime.date * Ptime.time   val of_date : Ptime.date -> Ptime.t option   val to_date : Ptime.t -> Ptime.date   val weekday :     ?tz_offset_s:Ptime.tz_offset_s ->     Ptime.t -> [ `Fri | `Mon | `Sat | `Sun | `Thu | `Tue | `Wed ]   type error_range = int * int   type rfc3339_error =       [ `Eoi | `Exp_chars of char list | `Invalid_stamp | `Trailing_input ]   val pp_rfc3339_error : Format.formatter -> Ptime.rfc3339_error -> unit   val rfc3339_error_to_msg :     ('a, [ `RFC3339 of Ptime.error_range * Ptime.rfc3339_error ])     Result.result -> ('a, [> `Msg of string ]) Result.result   val of_rfc3339 :     ?strict:bool ->     ?sub:bool ->     ?start:int ->     string ->     (Ptime.t * Ptime.tz_offset_s option * int,      [> `RFC3339 of Ptime.error_range * Ptime.rfc3339_error ])     Result.result   val to_rfc3339 :     ?space:bool ->     ?frac_s:int -> ?tz_offset_s:Ptime.tz_offset_s -> Ptime.t -> string   val pp_rfc3339 :     ?space:bool ->     ?frac_s:int ->     ?tz_offset_s:Ptime.tz_offset_s ->     unit -> Format.formatter -> Ptime.t -> unit   val pp_human :     ?frac_s:int ->     ?tz_offset_s:Ptime.tz_offset_s ->     unit -> Format.formatter -> Ptime.t -> unit   val pp : Format.formatter -> Ptime.t -> unit   val dump : Format.formatter -> Ptime.t -> unit end