sig   type +'a period constraint 'a = [< Period.date_field ]   type t = Period.date_field Period.S.period   val empty : [< Period.date_field ] Period.S.period   val add :     ([< Period.date_field ] as 'a) Period.S.period ->     'Period.S.period -> 'Period.S.period   val sub :     ([< Period.date_field ] as 'a) Period.S.period ->     'Period.S.period -> 'Period.S.period   val opp :     ([< Period.date_field ] as 'a) Period.S.period -> 'Period.S.period   val equal :     [< Period.date_field ] Period.S.period ->     [< Period.date_field ] Period.S.period -> bool   val compare :     [< Period.date_field ] Period.S.period ->     [< Period.date_field ] Period.S.period -> int   val hash : [< Period.date_field ] Period.S.period -> int end