Docs GODI Archive
Projects Blog Link DB

Look up function:

(e.g. "List.find" or "keysym")
More options
File lib/ocaml/pkg-lib/calendar/calendarLib.cmi_pretty GODI Package godi-calendar
Library calendar
 
   calendarLib.cmi_pretty    Sources  
module Period :
  sig
    module type S =
      sig
        type t
        val empty : t
        val add : t -> t -> t
        val sub : t -> t -> t
        val opp : t -> t
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
      end
  end
module Utils :
  sig
    module type Comparable =
      sig
        type t
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
      end
    module Int :
      sig
        type t = int
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
      end
    module Float :
      sig
        type t = float
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
        val set_precision : float -> unit
        val round : t -> int
      end
  end
module Time_Zone :
  sig
    type t = CalendarLib.Time_Zone.t = UTC | Local | UTC_Plus of int
    val current : unit -> t
    val change : t -> unit
    val gap : t -> t -> int
    val from_gmt : unit -> int
    val to_gmt : unit -> int
    val is_dst : unit -> bool
    val hour_of_dst : unit -> int
    val on : ('a -> 'b) -> t -> 'a -> 'b
  end
module Time :
  sig
    type t = CalendarLib.Time.t
    type field = [ `Hour | `Minute | `Second ]
    type second = int
    module Second :
      sig
        type t = second
        val from_int : int -> t
        val from_float : float -> t
        val to_int : t -> int
        val to_float : t -> float
      end
    val make : int -> int -> second -> t
    val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t
    val now : unit -> t
    val midnight : unit -> t
    val midday : unit -> t
    val convert : t -> Time_Zone.t -> Time_Zone.t -> t
    val from_gmt : t -> t
    val to_gmt : t -> t
    val normalize : t -> t * int
    val hour : t -> int
    val minute : t -> int
    val second : t -> second
    val to_seconds : t -> second
    val to_minutes : t -> float
    val to_hours : t -> float
    val equal : t -> t -> bool
    val compare : t -> t -> int
    val hash : t -> int
    val is_pm : t -> bool
    val is_am : t -> bool
    val from_seconds : second -> t
    val from_minutes : float -> t
    val from_hours : float -> t
    module Period :
      sig
        type t = CalendarLib.Time.Period.t
        val empty : t
        val add : t -> t -> t
        val sub : t -> t -> t
        val opp : t -> t
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
        val length : t -> second
        val mul : t -> t -> t
        val div : t -> t -> t
        val make : int -> int -> second -> t
        val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t
        val hour : int -> t
        val minute : int -> t
        val second : second -> t
        val to_seconds : t -> second
        val to_minutes : t -> float
        val to_hours : t -> float
      end
    val add : t -> Period.t -> t
    val sub : t -> t -> Period.t
    val rem : t -> Period.t -> t
    val next : t -> field -> t
    val prev : t -> field -> t
  end
module Ftime :
  sig
    type t = CalendarLib.Ftime.t
    type field = [ `Hour | `Minute | `Second ]
    type second = float
    module Second :
      sig
        type t = second
        val from_int : int -> t
        val from_float : float -> t
        val to_int : t -> int
        val to_float : t -> float
      end
    val make : int -> int -> second -> t
    val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t
    val now : unit -> t
    val midnight : unit -> t
    val midday : unit -> t
    val convert : t -> Time_Zone.t -> Time_Zone.t -> t
    val from_gmt : t -> t
    val to_gmt : t -> t
    val normalize : t -> t * int
    val hour : t -> int
    val minute : t -> int
    val second : t -> second
    val to_seconds : t -> second
    val to_minutes : t -> float
    val to_hours : t -> float
    val equal : t -> t -> bool
    val compare : t -> t -> int
    val hash : t -> int
    val is_pm : t -> bool
    val is_am : t -> bool
    val from_seconds : second -> t
    val from_minutes : float -> t
    val from_hours : float -> t
    module Period :
      sig
        type t = CalendarLib.Ftime.Period.t
        val empty : t
        val add : t -> t -> t
        val sub : t -> t -> t
        val opp : t -> t
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
        val length : t -> second
        val mul : t -> t -> t
        val div : t -> t -> t
        val make : int -> int -> second -> t
        val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t
        val hour : int -> t
        val minute : int -> t
        val second : second -> t
        val to_seconds : t -> second
        val to_minutes : t -> float
        val to_hours : t -> float
      end
    val add : t -> Period.t -> t
    val sub : t -> t -> Period.t
    val rem : t -> Period.t -> t
    val next : t -> field -> t
    val prev : t -> field -> t
  end
module Date :
  sig
    type t = CalendarLib.Date.t
    type day = CalendarLib.Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
    type month =
      CalendarLib.Date.month =
        Jan
      | Feb
      | Mar
      | Apr
      | May
      | Jun
      | Jul
      | Aug
      | Sep
      | Oct
      | Nov
      | Dec
    type year = int
    type field = [ `Day | `Month | `Week | `Year ]
    exception Out_of_bounds
    exception Undefined
    val make : year -> int -> int -> t
    val lmake : year:year -> ?month:int -> ?day:int -> unit -> t
    val today : unit -> t
    val from_jd : int -> t
    val from_mjd : int -> t
    val from_day_of_year : year -> int -> t
    val days_in_month : t -> int
    val day_of_week : t -> day
    val day_of_month : t -> int
    val day_of_year : t -> int
    val week : t -> int
    val month : t -> month
    val year : t -> year
    val to_jd : t -> int
    val to_mjd : t -> int
    val equal : t -> t -> bool
    val compare : t -> t -> int
    val hash : t -> int
    val is_valid_date : year -> int -> int -> bool
    val is_leap_day : t -> bool
    val is_gregorian : t -> bool
    val is_julian : t -> bool
    val to_unixtm : t -> Unix.tm
    val from_unixtm : Unix.tm -> t
    val to_unixfloat : t -> float
    val from_unixfloat : float -> t
    val to_business : t -> year * int * day
    val from_business : year -> int -> day -> t
    val int_of_day : day -> int
    val day_of_int : int -> day
    val int_of_month : month -> int
    val month_of_int : int -> month
    module Period :
      sig
        type t = CalendarLib.Date.Period.t
        val empty : t
        val add : t -> t -> t
        val sub : t -> t -> t
        val opp : t -> t
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
        val make : int -> int -> int -> t
        val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> t
        val year : int -> t
        val month : int -> t
        val week : int -> t
        val day : int -> t
        exception Not_computable
        val nb_days : t -> int
        val ymd : t -> int * int * int
      end
    val add : t -> Period.t -> t
    val sub : t -> t -> Period.t
    val rem : t -> Period.t -> t
    val next : t -> field -> t
    val prev : t -> field -> t
    val is_leap_year : year -> bool
    val same_calendar : year -> year -> bool
    val days_in_year : ?month:month -> year -> int
    val weeks_in_year : year -> int
    val week_first_last : int -> year -> t * t
    val nth_weekday_of_month : year -> month -> day -> int -> t
    val century : year -> int
    val millenium : year -> int
    val solar_number : year -> int
    val indiction : year -> int
    val golden_number : year -> int
    val epact : year -> int
    val easter : year -> t
    val carnaval : year -> t
    val mardi_gras : year -> t
    val ash : year -> t
    val palm : year -> t
    val easter_friday : year -> t
    val easter_saturday : year -> t
    val easter_monday : year -> t
    val ascension : year -> t
    val withsunday : year -> t
    val withmonday : year -> t
    val corpus_christi : year -> t
  end
module Calendar_builder :
  sig
    module Make :
      functor (D : Date_sig.S) ->
        functor (T : Time_sig.S) ->
          sig
            type t = CalendarLib.Calendar_builder.Make(D)(T).t
            module Date :
              sig
                type t = D.t
                type day = D.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
                type month =
                  D.month =
                    Jan
                  | Feb
                  | Mar
                  | Apr
                  | May
                  | Jun
                  | Jul
                  | Aug
                  | Sep
                  | Oct
                  | Nov
                  | Dec
                type year = int
                type field = [ `Day | `Month | `Week | `Year ]
                exception Out_of_bounds
                exception Undefined
                val make : year -> int -> int -> t
                val lmake : year:year -> ?month:int -> ?day:int -> unit -> t
                val today : unit -> t
                val from_jd : int -> t
                val from_mjd : int -> t
                val from_day_of_year : year -> int -> t
                val days_in_month : t -> int
                val day_of_week : t -> day
                val day_of_month : t -> int
                val day_of_year : t -> int
                val week : t -> int
                val month : t -> month
                val year : t -> year
                val to_jd : t -> int
                val to_mjd : t -> int
                val equal : t -> t -> bool
                val compare : t -> t -> int
                val hash : t -> int
                val is_valid_date : year -> int -> int -> bool
                val is_leap_day : t -> bool
                val is_gregorian : t -> bool
                val is_julian : t -> bool
                val to_unixtm : t -> Unix.tm
                val from_unixtm : Unix.tm -> t
                val to_unixfloat : t -> float
                val from_unixfloat : float -> t
                val to_business : t -> year * int * day
                val from_business : year -> int -> day -> t
                val int_of_day : day -> int
                val day_of_int : int -> day
                val int_of_month : month -> int
                val month_of_int : int -> month
                module Period :
                  sig
                    type t = D.Period.t
                    val empty : t
                    val add : t -> t -> t
                    val sub : t -> t -> t
                    val opp : t -> t
                    val equal : t -> t -> bool
                    val compare : t -> t -> int
                    val hash : t -> int
                    val make : int -> int -> int -> t
                    val lmake :
                      ?year:int -> ?month:int -> ?day:int -> unit -> t
                    val year : int -> t
                    val month : int -> t
                    val week : int -> t
                    val day : int -> t
                    exception Not_computable
                    val nb_days : t -> int
                    val ymd : t -> int * int * int
                  end
                val add : t -> Period.t -> t
                val sub : t -> t -> Period.t
                val rem : t -> Period.t -> t
                val next : t -> field -> t
                val prev : t -> field -> t
                val is_leap_year : year -> bool
                val same_calendar : year -> year -> bool
                val days_in_year : ?month:month -> year -> int
                val weeks_in_year : year -> int
                val week_first_last : int -> year -> t * t
                val nth_weekday_of_month : year -> month -> day -> int -> t
                val century : year -> int
                val millenium : year -> int
                val solar_number : year -> int
                val indiction : year -> int
                val golden_number : year -> int
                val epact : year -> int
                val easter : year -> t
                val carnaval : year -> t
                val mardi_gras : year -> t
                val ash : year -> t
                val palm : year -> t
                val easter_friday : year -> t
                val easter_saturday : year -> t
                val easter_monday : year -> t
                val ascension : year -> t
                val withsunday : year -> t
                val withmonday : year -> t
                val corpus_christi : year -> t
              end
            module Time :
              sig
                type t = T.t
                type field = [ `Hour | `Minute | `Second ]
                type second = T.second
                module Second :
                  sig
                    type t = second
                    val from_int : int -> t
                    val from_float : float -> t
                    val to_int : t -> int
                    val to_float : t -> float
                  end
                val make : int -> int -> second -> t
                val lmake :
                  ?hour:int -> ?minute:int -> ?second:second -> unit -> t
                val now : unit -> t
                val midnight : unit -> t
                val midday : unit -> t
                val convert : t -> Time_Zone.t -> Time_Zone.t -> t
                val from_gmt : t -> t
                val to_gmt : t -> t
                val normalize : t -> t * int
                val hour : t -> int
                val minute : t -> int
                val second : t -> second
                val to_seconds : t -> second
                val to_minutes : t -> float
                val to_hours : t -> float
                val equal : t -> t -> bool
                val compare : t -> t -> int
                val hash : t -> int
                val is_pm : t -> bool
                val is_am : t -> bool
                val from_seconds : second -> t
                val from_minutes : float -> t
                val from_hours : float -> t
                module Period :
                  sig
                    type t = T.Period.t
                    val empty : t
                    val add : t -> t -> t
                    val sub : t -> t -> t
                    val opp : t -> t
                    val equal : t -> t -> bool
                    val compare : t -> t -> int
                    val hash : t -> int
                    val length : t -> second
                    val mul : t -> t -> t
                    val div : t -> t -> t
                    val make : int -> int -> second -> t
                    val lmake :
                      ?hour:int -> ?minute:int -> ?second:second -> unit -> t
                    val hour : int -> t
                    val minute : int -> t
                    val second : second -> t
                    val to_seconds : t -> second
                    val to_minutes : t -> float
                    val to_hours : t -> float
                  end
                val add : t -> Period.t -> t
                val sub : t -> t -> Period.t
                val rem : t -> Period.t -> t
                val next : t -> field -> t
                val prev : t -> field -> t
              end
            type day = Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
            type month =
              Date.month =
                Jan
              | Feb
              | Mar
              | Apr
              | May
              | Jun
              | Jul
              | Aug
              | Sep
              | Oct
              | Nov
              | Dec
            type year = Date.year
            type second = Time.second
            type field =
                [ `Day | `Hour | `Minute | `Month | `Second | `Week | `Year ]
            val make : int -> int -> int -> int -> int -> second -> t
            val lmake :
              year:int ->
              ?month:int ->
              ?day:int ->
              ?hour:int -> ?minute:int -> ?second:second -> unit -> t
            val create : Date.t -> Time.t -> t
            val now : unit -> t
            val from_jd : float -> t
            val from_mjd : float -> t
            val convert : t -> Time_Zone.t -> Time_Zone.t -> t
            val to_gmt : t -> t
            val from_gmt : t -> t
            val days_in_month : t -> int
            val day_of_week : t -> day
            val day_of_month : t -> int
            val day_of_year : t -> int
            val week : t -> int
            val month : t -> month
            val year : t -> int
            val to_jd : t -> float
            val to_mjd : t -> float
            val hour : t -> int
            val minute : t -> int
            val second : t -> second
            val equal : t -> t -> bool
            val compare : t -> t -> int
            val hash : t -> int
            val is_leap_day : t -> bool
            val is_gregorian : t -> bool
            val is_julian : t -> bool
            val is_pm : t -> bool
            val is_am : t -> bool
            val to_unixtm : t -> Unix.tm
            val from_unixtm : Unix.tm -> t
            val to_unixfloat : t -> float
            val from_unixfloat : float -> t
            val from_date : Date.t -> t
            val to_date : t -> Date.t
            val to_time : t -> Time.t
            module Period :
              sig
                type t = CalendarLib.Calendar_builder.Make(D)(T).Period.t
                val empty : t
                val add : t -> t -> t
                val sub : t -> t -> t
                val opp : t -> t
                val equal : t -> t -> bool
                val compare : t -> t -> int
                val hash : t -> int
                val make : int -> int -> int -> int -> int -> second -> t
                val lmake :
                  ?year:int ->
                  ?month:int ->
                  ?day:int ->
                  ?hour:int -> ?minute:int -> ?second:second -> unit -> t
                val year : int -> t
                val month : int -> t
                val week : int -> t
                val day : int -> t
                val hour : int -> t
                val minute : int -> t
                val second : second -> t
                val from_date : Date.Period.t -> t
                val from_time : Time.Period.t -> t
                val to_date : t -> Date.Period.t
                exception Not_computable
                val to_time : t -> Time.Period.t
                val ymds : t -> int * int * int * second
              end
            val add : t -> Period.t -> t
            val sub : t -> t -> Period.t
            val rem : t -> Period.t -> t
            val next : t -> field -> t
            val prev : t -> field -> t
          end
    module Make_Precise :
      functor (D : Date_sig.S) ->
        functor (T : Time_sig.S) ->
          sig
            type t = CalendarLib.Calendar_builder.Make_Precise(D)(T).t
            module Date :
              sig
                type t = D.t
                type day = D.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
                type month =
                  D.month =
                    Jan
                  | Feb
                  | Mar
                  | Apr
                  | May
                  | Jun
                  | Jul
                  | Aug
                  | Sep
                  | Oct
                  | Nov
                  | Dec
                type year = int
                type field = [ `Day | `Month | `Week | `Year ]
                exception Out_of_bounds
                exception Undefined
                val make : year -> int -> int -> t
                val lmake : year:year -> ?month:int -> ?day:int -> unit -> t
                val today : unit -> t
                val from_jd : int -> t
                val from_mjd : int -> t
                val from_day_of_year : year -> int -> t
                val days_in_month : t -> int
                val day_of_week : t -> day
                val day_of_month : t -> int
                val day_of_year : t -> int
                val week : t -> int
                val month : t -> month
                val year : t -> year
                val to_jd : t -> int
                val to_mjd : t -> int
                val equal : t -> t -> bool
                val compare : t -> t -> int
                val hash : t -> int
                val is_valid_date : year -> int -> int -> bool
                val is_leap_day : t -> bool
                val is_gregorian : t -> bool
                val is_julian : t -> bool
                val to_unixtm : t -> Unix.tm
                val from_unixtm : Unix.tm -> t
                val to_unixfloat : t -> float
                val from_unixfloat : float -> t
                val to_business : t -> year * int * day
                val from_business : year -> int -> day -> t
                val int_of_day : day -> int
                val day_of_int : int -> day
                val int_of_month : month -> int
                val month_of_int : int -> month
                module Period :
                  sig
                    type t = D.Period.t
                    val empty : t
                    val add : t -> t -> t
                    val sub : t -> t -> t
                    val opp : t -> t
                    val equal : t -> t -> bool
                    val compare : t -> t -> int
                    val hash : t -> int
                    val make : int -> int -> int -> t
                    val lmake :
                      ?year:int -> ?month:int -> ?day:int -> unit -> t
                    val year : int -> t
                    val month : int -> t
                    val week : int -> t
                    val day : int -> t
                    exception Not_computable
                    val nb_days : t -> int
                    val ymd : t -> int * int * int
                  end
                val add : t -> Period.t -> t
                val sub : t -> t -> Period.t
                val rem : t -> Period.t -> t
                val next : t -> field -> t
                val prev : t -> field -> t
                val is_leap_year : year -> bool
                val same_calendar : year -> year -> bool
                val days_in_year : ?month:month -> year -> int
                val weeks_in_year : year -> int
                val week_first_last : int -> year -> t * t
                val nth_weekday_of_month : year -> month -> day -> int -> t
                val century : year -> int
                val millenium : year -> int
                val solar_number : year -> int
                val indiction : year -> int
                val golden_number : year -> int
                val epact : year -> int
                val easter : year -> t
                val carnaval : year -> t
                val mardi_gras : year -> t
                val ash : year -> t
                val palm : year -> t
                val easter_friday : year -> t
                val easter_saturday : year -> t
                val easter_monday : year -> t
                val ascension : year -> t
                val withsunday : year -> t
                val withmonday : year -> t
                val corpus_christi : year -> t
              end
            module Time :
              sig
                type t = T.t
                type field = [ `Hour | `Minute | `Second ]
                type second = T.second
                module Second :
                  sig
                    type t = second
                    val from_int : int -> t
                    val from_float : float -> t
                    val to_int : t -> int
                    val to_float : t -> float
                  end
                val make : int -> int -> second -> t
                val lmake :
                  ?hour:int -> ?minute:int -> ?second:second -> unit -> t
                val now : unit -> t
                val midnight : unit -> t
                val midday : unit -> t
                val convert : t -> Time_Zone.t -> Time_Zone.t -> t
                val from_gmt : t -> t
                val to_gmt : t -> t
                val normalize : t -> t * int
                val hour : t -> int
                val minute : t -> int
                val second : t -> second
                val to_seconds : t -> second
                val to_minutes : t -> float
                val to_hours : t -> float
                val equal : t -> t -> bool
                val compare : t -> t -> int
                val hash : t -> int
                val is_pm : t -> bool
                val is_am : t -> bool
                val from_seconds : second -> t
                val from_minutes : float -> t
                val from_hours : float -> t
                module Period :
                  sig
                    type t = T.Period.t
                    val empty : t
                    val add : t -> t -> t
                    val sub : t -> t -> t
                    val opp : t -> t
                    val equal : t -> t -> bool
                    val compare : t -> t -> int
                    val hash : t -> int
                    val length : t -> second
                    val mul : t -> t -> t
                    val div : t -> t -> t
                    val make : int -> int -> second -> t
                    val lmake :
                      ?hour:int -> ?minute:int -> ?second:second -> unit -> t
                    val hour : int -> t
                    val minute : int -> t
                    val second : second -> t
                    val to_seconds : t -> second
                    val to_minutes : t -> float
                    val to_hours : t -> float
                  end
                val add : t -> Period.t -> t
                val sub : t -> t -> Period.t
                val rem : t -> Period.t -> t
                val next : t -> field -> t
                val prev : t -> field -> t
              end
            type day = Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
            type month =
              Date.month =
                Jan
              | Feb
              | Mar
              | Apr
              | May
              | Jun
              | Jul
              | Aug
              | Sep
              | Oct
              | Nov
              | Dec
            type year = Date.year
            type second = Time.second
            type field =
                [ `Day | `Hour | `Minute | `Month | `Second | `Week | `Year ]
            val make : int -> int -> int -> int -> int -> second -> t
            val lmake :
              year:int ->
              ?month:int ->
              ?day:int ->
              ?hour:int -> ?minute:int -> ?second:second -> unit -> t
            val create : Date.t -> Time.t -> t
            val now : unit -> t
            val from_jd : float -> t
            val from_mjd : float -> t
            val convert : t -> Time_Zone.t -> Time_Zone.t -> t
            val to_gmt : t -> t
            val from_gmt : t -> t
            val days_in_month : t -> int
            val day_of_week : t -> day
            val day_of_month : t -> int
            val day_of_year : t -> int
            val week : t -> int
            val month : t -> month
            val year : t -> int
            val to_jd : t -> float
            val to_mjd : t -> float
            val hour : t -> int
            val minute : t -> int
            val second : t -> second
            val equal : t -> t -> bool
            val compare : t -> t -> int
            val hash : t -> int
            val is_leap_day : t -> bool
            val is_gregorian : t -> bool
            val is_julian : t -> bool
            val is_pm : t -> bool
            val is_am : t -> bool
            val to_unixtm : t -> Unix.tm
            val from_unixtm : Unix.tm -> t
            val to_unixfloat : t -> float
            val from_unixfloat : float -> t
            val from_date : Date.t -> t
            val to_date : t -> Date.t
            val to_time : t -> Time.t
            module Period :
              sig
                type t =
                    CalendarLib.Calendar_builder.Make_Precise(D)(T).Period.t
                val empty : t
                val add : t -> t -> t
                val sub : t -> t -> t
                val opp : t -> t
                val equal : t -> t -> bool
                val compare : t -> t -> int
                val hash : t -> int
                val make : int -> int -> int -> int -> int -> second -> t
                val lmake :
                  ?year:int ->
                  ?month:int ->
                  ?day:int ->
                  ?hour:int -> ?minute:int -> ?second:second -> unit -> t
                val year : int -> t
                val month : int -> t
                val week : int -> t
                val day : int -> t
                val hour : int -> t
                val minute : int -> t
                val second : second -> t
                val from_date : Date.Period.t -> t
                val from_time : Time.Period.t -> t
                val to_date : t -> Date.Period.t
                exception Not_computable
                val to_time : t -> Time.Period.t
                val ymds : t -> int * int * int * second
              end
            val add : t -> Period.t -> t
            val sub : t -> t -> Period.t
            val rem : t -> Period.t -> t
            val next : t -> field -> t
            val prev : t -> field -> t
          end
  end
module Calendar :
  sig
    type t = CalendarLib.Calendar.t
    module Date :
      sig
        type t = Date.t
        type day = Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
        type month =
          Date.month =
            Jan
          | Feb
          | Mar
          | Apr
          | May
          | Jun
          | Jul
          | Aug
          | Sep
          | Oct
          | Nov
          | Dec
        type year = int
        type field = [ `Day | `Month | `Week | `Year ]
        exception Out_of_bounds
        exception Undefined
        val make : year -> int -> int -> t
        val lmake : year:year -> ?month:int -> ?day:int -> unit -> t
        val today : unit -> t
        val from_jd : int -> t
        val from_mjd : int -> t
        val from_day_of_year : year -> int -> t
        val days_in_month : t -> int
        val day_of_week : t -> day
        val day_of_month : t -> int
        val day_of_year : t -> int
        val week : t -> int
        val month : t -> month
        val year : t -> year
        val to_jd : t -> int
        val to_mjd : t -> int
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
        val is_valid_date : year -> int -> int -> bool
        val is_leap_day : t -> bool
        val is_gregorian : t -> bool
        val is_julian : t -> bool
        val to_unixtm : t -> Unix.tm
        val from_unixtm : Unix.tm -> t
        val to_unixfloat : t -> float
        val from_unixfloat : float -> t
        val to_business : t -> year * int * day
        val from_business : year -> int -> day -> t
        val int_of_day : day -> int
        val day_of_int : int -> day
        val int_of_month : month -> int
        val month_of_int : int -> month
        module Period :
          sig
            type t = Date.Period.t
            val empty : t
            val add : t -> t -> t
            val sub : t -> t -> t
            val opp : t -> t
            val equal : t -> t -> bool
            val compare : t -> t -> int
            val hash : t -> int
            val make : int -> int -> int -> t
            val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> t
            val year : int -> t
            val month : int -> t
            val week : int -> t
            val day : int -> t
            exception Not_computable
            val nb_days : t -> int
            val ymd : t -> int * int * int
          end
        val add : t -> Period.t -> t
        val sub : t -> t -> Period.t
        val rem : t -> Period.t -> t
        val next : t -> field -> t
        val prev : t -> field -> t
        val is_leap_year : year -> bool
        val same_calendar : year -> year -> bool
        val days_in_year : ?month:month -> year -> int
        val weeks_in_year : year -> int
        val week_first_last : int -> year -> t * t
        val nth_weekday_of_month : year -> month -> day -> int -> t
        val century : year -> int
        val millenium : year -> int
        val solar_number : year -> int
        val indiction : year -> int
        val golden_number : year -> int
        val epact : year -> int
        val easter : year -> t
        val carnaval : year -> t
        val mardi_gras : year -> t
        val ash : year -> t
        val palm : year -> t
        val easter_friday : year -> t
        val easter_saturday : year -> t
        val easter_monday : year -> t
        val ascension : year -> t
        val withsunday : year -> t
        val withmonday : year -> t
        val corpus_christi : year -> t
      end
    module Time :
      sig
        type t = Time.t
        type field = [ `Hour | `Minute | `Second ]
        type second = int
        module Second :
          sig
            type t = second
            val from_int : int -> t
            val from_float : float -> t
            val to_int : t -> int
            val to_float : t -> float
          end
        val make : int -> int -> second -> t
        val lmake : ?hour:int -> ?minute:int -> ?second:second -> unit -> t
        val now : unit -> t
        val midnight : unit -> t
        val midday : unit -> t
        val convert : t -> Time_Zone.t -> Time_Zone.t -> t
        val from_gmt : t -> t
        val to_gmt : t -> t
        val normalize : t -> t * int
        val hour : t -> int
        val minute : t -> int
        val second : t -> second
        val to_seconds : t -> second
        val to_minutes : t -> float
        val to_hours : t -> float
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
        val is_pm : t -> bool
        val is_am : t -> bool
        val from_seconds : second -> t
        val from_minutes : float -> t
        val from_hours : float -> t
        module Period :
          sig
            type t = Time.Period.t
            val empty : t
            val add : t -> t -> t
            val sub : t -> t -> t
            val opp : t -> t
            val equal : t -> t -> bool
            val compare : t -> t -> int
            val hash : t -> int
            val length : t -> second
            val mul : t -> t -> t
            val div : t -> t -> t
            val make : int -> int -> second -> t
            val lmake :
              ?hour:int -> ?minute:int -> ?second:second -> unit -> t
            val hour : int -> t
            val minute : int -> t
            val second : second -> t
            val to_seconds : t -> second
            val to_minutes : t -> float
            val to_hours : t -> float
          end
        val add : t -> Period.t -> t
        val sub : t -> t -> Period.t
        val rem : t -> Period.t -> t
        val next : t -> field -> t
        val prev : t -> field -> t
      end
    type day = Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
    type month =
      Date.month =
        Jan
      | Feb
      | Mar
      | Apr
      | May
      | Jun
      | Jul
      | Aug
      | Sep
      | Oct
      | Nov
      | Dec
    type year = Date.year
    type second = Time.second
    type field =
        [ `Day | `Hour | `Minute | `Month | `Second | `Week | `Year ]
    val make : int -> int -> int -> int -> int -> second -> t
    val lmake :
      year:int ->
      ?month:int ->
      ?day:int -> ?hour:int -> ?minute:int -> ?second:second -> unit -> t
    val create : Date.t -> Time.t -> t
    val now : unit -> t
    val from_jd : float -> t
    val from_mjd : float -> t
    val convert : t -> Time_Zone.t -> Time_Zone.t -> t
    val to_gmt : t -> t
    val from_gmt : t -> t
    val days_in_month : t -> int
    val day_of_week : t -> day
    val day_of_month : t -> int
    val day_of_year : t -> int
    val week : t -> int
    val month : t -> month
    val year : t -> int
    val to_jd : t -> float
    val to_mjd : t -> float
    val hour : t -> int
    val minute : t -> int
    val second : t -> second
    val equal : t -> t -> bool
    val compare : t -> t -> int
    val hash : t -> int
    val is_leap_day : t -> bool
    val is_gregorian : t -> bool
    val is_julian : t -> bool
    val is_pm : t -> bool
    val is_am : t -> bool
    val to_unixtm : t -> Unix.tm
    val from_unixtm : Unix.tm -> t
    val to_unixfloat : t -> float
    val from_unixfloat : float -> t
    val from_date : Date.t -> t
    val to_date : t -> Date.t
    val to_time : t -> Time.t
    module Period :
      sig
        type t = CalendarLib.Calendar.Period.t
        val empty : t
        val add : t -> t -> t
        val sub : t -> t -> t
        val opp : t -> t
        val equal : t -> t -> bool
        val compare : t -> t -> int
        val hash : t -> int
        val make : int -> int -> int -> int -> int -> second -> t
        val lmake :
          ?year:int ->
          ?month:int ->
          ?day:int -> ?hour:int -> ?minute:int -> ?second:second -> unit -> t
        val year : int -> t
        val month : int -> t
        val week : int -> t
        val day : int -> t
        val hour : int -> t
        val minute : int -> t
        val second : second -> t
        val from_date : Date.Period.t -> t
        val from_time : Time.Period.t -> t
        val to_date : t -> Date.Period.t
        exception Not_computable
        val to_time : t -> Time.Period.t
        val ymds : t -> int * int * int * second
      end
    val add : t -> Period.t -> t
    val sub : t -> t -> Period.t
    val rem : t -> Period.t -> t
    val next : t -> field -> t
    val prev : t -> field -> t
    module Precise :
      sig
        type t = CalendarLib.Calendar.Precise.t
        module Date :
          sig
            type t = Date.t
            type day = Date.day = Sun | Mon | Tue | Wed | Thu | Fri | Sat
            type month =
              Date.month =
                Jan
              | Feb
              | Mar
              | Apr
              | May
              | Jun
              | Jul
              | Aug
              | Sep
              | Oct
              | Nov
              | Dec
            type year = int
            type field = [ `Day | `Month | `Week | `Year ]
            exception Out_of_bounds
            exception Undefined
            val make : year -> int -> int -> t
            val lmake : year:year -> ?month:int -> ?day:int -> unit -> t
            val today : unit -> t
            val from_jd : int -> t
            val from_mjd : int -> t
            val from_day_of_year : year -> int -> t
            val days_in_month : t -> int
            val day_of_week : t -> day
            val day_of_month : t -> int
            val day_of_year : t -> int
            val week : t -> int
            val month : t -> month
            val year : t -> year
            val to_jd : t -> int
            val to_mjd : t -> int
            val equal : t -> t -> bool
            val compare : t -> t -> int
            val hash : t -> int
            val is_valid_date : year -> int -> int -> bool
            val is_leap_day : t -> bool
            val is_gregorian : t -> bool
            val is_julian : t -> bool
            val to_unixtm : t -> Unix.tm
            val from_unixtm : Unix.tm -> t
            val to_unixfloat : t -> float
            val from_unixfloat : float -> t
            val to_business : t -> year * int * day
            val from_business : year -> int -> day -> t
            val int_of_day : day -> int
            val day_of_int : int -> day
            val int_of_month : month -> int
            val month_of_int : int -> month
            module Period :
              sig
                type t = Date.Period.t
                val empty : t
                val add : t -> t -> t
                val sub : t -> t -> t
                val opp : t -> t
                val equal : t -> t -> bool
                val compare : t -> t -> int
                val hash : t -> int
                val make : int -> int -> int -> t
                val lmake : ?year:int -> ?month:int -> ?day:int -> unit -> t
                val year : int -> t
                val month : int -> t
                val week : int -> t
                val day : int -> t
                exception Not_computable
                val nb_days : t -> int
                val ymd : t -> int * int * int
              end
            val add : t -> Period.t -> t
            val sub : t -> t -> Period.t
            val rem : t -> Period.t -> t
            val next : t -> field -> t
            val prev : t -> field -> t
            val is_leap_year : year -> bool
            val same_calendar : year -> year -> bool
            val days_in_year : ?month:month -> year -> int
            val weeks_in_year : year -> int
            val week_first_last : int -> year -> t * t
            val nth_weekday_of_month : year -> month -> day -> int -> t
            val century : year -> int