sig   type +'a period constraint 'a = [< Period.date_field ]   type t = Period.date_field Calendar_sig.S.Period.period   val empty : [< Period.date_field ] Calendar_sig.S.Period.period   val add :     ([< Period.date_field > `Day `Week ] as 'a) Calendar_sig.S.Period.period ->     'Calendar_sig.S.Period.period -> 'Calendar_sig.S.Period.period   val sub :     ([< Period.date_field > `Day `Week ] as 'a) Calendar_sig.S.Period.period ->     'Calendar_sig.S.Period.period -> 'Calendar_sig.S.Period.period   val opp :     ([< Period.date_field > `Day `Week ] as 'a) Calendar_sig.S.Period.period ->     'Calendar_sig.S.Period.period   val equal :     [< Period.date_field ] Calendar_sig.S.Period.period ->     [< Period.date_field ] Calendar_sig.S.Period.period -> bool   val compare :     [< Period.date_field ] Calendar_sig.S.Period.period ->     [< Period.date_field ] Calendar_sig.S.Period.period -> int   val hash : [< Period.date_field ] Calendar_sig.S.Period.period -> int   val make :     int ->     int ->     int -> int -> int -> Calendar_sig.S.second -> Calendar_sig.S.Period.t   val lmake :     ?year:int ->     ?month:int ->     ?day:int ->     ?hour:int ->     ?minute:int ->     ?second:Calendar_sig.S.second -> unit -> Calendar_sig.S.Period.t   val year :     int -> [< Period.date_field > `Year ] Calendar_sig.S.Period.period   val month :     int -> [< Period.date_field > `Month `Year ] Calendar_sig.S.Period.period   val week :     int -> [< Period.date_field > `Day `Week ] Calendar_sig.S.Period.period   val day :     int -> [< Period.date_field > `Day `Week ] Calendar_sig.S.Period.period   val hour :     int -> [< Period.date_field > `Day `Week ] Calendar_sig.S.Period.period   val minute :     int -> [< Period.date_field > `Day `Week ] Calendar_sig.S.Period.period   val second :     Calendar_sig.S.second ->     [< Period.date_field > `Day `Week ] Calendar_sig.S.Period.period   val from_date :     ([< Period.date_field ] as 'a) Date.Period.period ->     'Calendar_sig.S.Period.period   val from_time :     ([< Period.date_field ] as 'a) Time.Period.period ->     'Calendar_sig.S.Period.period   val to_date :     ([< Date.field ] as 'a) Calendar_sig.S.Period.period ->     'Date.Period.period   exception Not_computable   val to_time :     ([< Period.date_field ] as 'a) Calendar_sig.S.Period.period ->     'Time.Period.period   val safe_to_time :     ([< `Day | `Week ] as 'a) Calendar_sig.S.Period.period ->     'Time.Period.period   val ymds :     [< Period.date_field ] Calendar_sig.S.Period.period ->     int * int * int * Calendar_sig.S.second end