anchor.diff:  {$IFNDEF SUPPORTS_MONITOR}
     SyncObjs,
   {$ENDIF}
  +{$IFDEF FPC}
     Contnrs,
  +{$ELSE}
  +  Generics.Collections,
  +{$ENDIF}
     IniFiles;
   
   resourcestring
  
positive.code: {$IFNDEF SUPPORTS_MONITOR}
    FRulesByYearLock := TCriticalSection.Create;
  {$ENDIF}
    FRulesByYear := TBucketList.Create();
  end;
  
  destructor TCompiledPeriod.Destroy;
  begin
  {$IFNDEF SUPPORTS_MONITOR}
    FRulesByYearLock.Free;
  
negative.code: {$IFDEF FPC}
      FRulesByYear.ForEach(@ForEachYearlyRule);
  {$ELSE}
      for L in FRulesByYear.Values do
        ForEachYearlyRule(nil, nil, L, c);
  {$ENDIF}
  
      FRulesByYear.Free;
  