anchor.diff:  {$IFNDEF SUPPORTS_MONITOR}
     SyncObjs,
   {$ENDIF}
  +{$IFDEF FPC}
     Contnrs,
  +{$ELSE}
  +  Generics.Collections,
  +{$ENDIF}
     IniFiles;
   
   resourcestring
  
positive.code:     FRulesByYearLock: TCriticalSection;
  {$ENDIF}
      { Year -> List of Rules for that year }
      FRulesByYear: TBucketList;  { Word, TList<TCompiledRule> }
  
      { Obtain the last rule that is active in a given year }
      function GetLastRuleForYear(const AYear: Word): PRule;
  
negative.code: {$IFNDEF SUPPORTS_MONITOR}
    FRulesByYearLock := TCriticalSection.Create;
  {$ENDIF}
  {$IFDEF FPC}
    FRulesByYear := TBucketList.Create();
  {$ELSE}
    FRulesByYear := TDictionary<Word,TList>.Create;
  {$ENDIF}
  end;
  
  destructor TCompiledPeriod.Destroy;
  var L: TList;
      c: Boolean;
  begin
  {$IFNDEF SUPPORTS_MONITOR}
    FRulesByYearLock.Free;
  