Period.S

`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 ->
'a Period.S.period -> 'a Period.S.period
val sub :
([< Period.date_field ] as 'a) Period.S.period ->
'a Period.S.period -> 'a Period.S.period
val opp :
([< Period.date_field ] as 'a) Period.S.period -> 'a 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`