anchor.diff:  
   constructor TFslTimeZone.Create(zone: String);
   begin
  -  inherited Create;
     FZone := zone;
     if FZone = '' then
       FDetails := TBundledTimeZone.GetTimeZone(TimeZoneIANAName)
  
positive.code: type
    TFslTimeSpan = Double;
  
    TFSLTimeZone = class (TFslObject)
    private
      FZone : String;
      FDetails : TBundledTimeZone;
    public
      constructor Create(zone : String);
      class function Local: TFslTimeZone;
  
      function GetUtcOffset(const ADateTime: TDateTime): TFslTimeSpan; inline;
      function ToLocalTime(const ADateTime: TDateTime): TDateTime;
  
negative.code:   result := FDetails.ToUniversalTime(ADateTime);
  end;
  
  class function TFslTimeZone.local: TFslTimeZone;
  begin
    result := TFslTimeZone.create('');
  end;
  
  class function TFslTimeZone.other(zone : String) : TFslTimeZone;
  begin
    result := TFslTimeZone.create(zone);
  end;
  
  Initialization
  