import ceylon.time { Period } """Whether daylight saving time is being observed: * [[standardZoneRule]]: A hyphen, a kind of `null` value, means that we have not set our clocks ahead of standard time. * [[PeriodZoneRule]]: An amount of time (usually but not necessarily `1:00` meaning one hour) means that we have set our clocks ahead by that amount. * [[BasedZoneRule]]: Some alphabetic string means that we might have set our clocks ahead; and we need to check the rule the name of which is the given alphabetic string.""" shared abstract class ZoneRule() of standardZoneRule | PeriodZoneRule | BasedZoneRule {} shared object standardZoneRule extends ZoneRule(){} shared class PeriodZoneRule(period) extends ZoneRule(){ shared Period period; } shared class BasedZoneRule(ruleName) extends ZoneRule(){ shared String ruleName; }