Module Archetype.Core

module Format : sig ... end
type big_int = Big_int.big_int
val pp_big_int : Format.formatter -> Big_int.big_int -> unit
val big_int_of_yojson : Yojson.Safe.t -> (big_int, string) Result.result
val big_int_to_yojson : big_int -> Yojson.Safe.t
val compute_irr_fract : (Big_int.big_int * Big_int.big_int) -> Big_int.big_int * Big_int.big_int
val decimal_string_to_rational : string -> big_int * big_int
type duration = {
weeks : big_int;
days : big_int;
hours : big_int;
minutes : big_int;
seconds : big_int;
}
val pp_duration : Ppx_deriving_runtime.Format.formatter -> duration -> Ppx_deriving_runtime.unit
val show_duration : duration -> Ppx_deriving_runtime.string
val mk_duration : ?⁠weeks:big_int -> ?⁠days:big_int -> ?⁠hours:big_int -> ?⁠minutes:big_int -> ?⁠seconds:big_int -> unit -> duration
val string_to_duration : string -> duration
val cmp_duration : duration -> duration -> bool
val pp_duration_for_printer : Format.formatter -> duration -> unit
val duration_to_timestamp : duration -> big_int
val pp_duration_in_seconds : Format.formatter -> duration -> unit
type timezone =
| TZnone
| TZZ
| TZplus of int * int
| TZminus of int * int
val pp_timezone : Ppx_deriving_runtime.Format.formatter -> timezone -> Ppx_deriving_runtime.unit
val show_timezone : timezone -> Ppx_deriving_runtime.string
type date = {
year : int;
month : int;
day : int;
hour : int;
minute : int;
second : int;
timezone : timezone;
}
val pp_date : Ppx_deriving_runtime.Format.formatter -> date -> Ppx_deriving_runtime.unit
val show_date : date -> Ppx_deriving_runtime.string
val mk_date : ?⁠year:int -> ?⁠month:int -> ?⁠day:int -> ?⁠hour:int -> ?⁠minute:int -> ?⁠second:int -> ?⁠timezone:timezone -> unit -> date
val pp_date : Format.formatter -> date -> unit
val cmp_timezone : timezone -> timezone -> bool
val cmp_date : date -> date -> bool
exception MalformedDate of string
val string_to_date : string -> date
val is_leapyear : int -> bool

is_leapyear is true, if and only if a year is a leap year

val (**) : int -> Big_int.big_int -> Big_int.big_int
val sec : Big_int.big_int
val sec_per_min : Big_int.big_int
val sec_per_hour : Big_int.big_int
val sec_per_day : Big_int.big_int
val days_since_epoch : int -> int -> int -> int
val seconds_since_epoch : date -> Big_int.big_int
val epoch : Big_int.big_int
val date_to_timestamp : date -> big_int
type tzkind =
| Ktz
| Kmtz
| Kutz
val string_to_big_int_tz : tzkind -> string -> Big_int.big_int
val string_to_big_int_percent : string -> Big_int.big_int * Big_int.big_int