anchor.diff:    IterateLoggers(
       procedure (Logger : ILogger)
       begin
  -      //
  +      Logger.LeaveMethod(ARecord, MethodAddress, AResult);
       end
     );
   end;
   
   procedure TMetaLogger.LeaveSection(const Vals : array of const);
  -begin
  -  IterateLoggers(
  -    procedure (Logger : ILogger)
  -    begin
  -      //
  +var
  +  LVals : TArray<TVarRec>;
  +begin
  +  UnsafeCopyOpenArray<TVarRec>(Vals, LVals);
  +
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      Logger.LeaveSection(LVals);
       end
     );
   end;
  
positive.code:   IterateLoggers(
      procedure (Logger : ILogger)
      begin
        //
      end
    );
  end;
  
  procedure TMetaLogger.LeaveSectionFmt(const Msg : String; const Args : array of const);
  begin
    IterateLoggers(
      procedure (Logger : ILogger)
      begin
        //
      end
    );
  end;
  
  procedure TMetaLogger.LeaveSectionVal(const Vals : array of TValue);
  begin
    IterateLoggers(
      procedure (Logger : ILogger)
      begin
        //
      end
    );
  end;
  
negative.code:   IterateLoggers(
      procedure (Logger : ILogger)
      begin
        Logger.Fatal(Msg);
      end
    );
  end;
  
  procedure TMetaLogger.FatalFmt(const Msg : String; const Args : array of const);
  var
    LArgs : TArray<TVarRec>;
  begin
    UnsafeCopyOpenArray<TVarRec>(Args, LArgs);
  
    IterateLoggers(
      procedure (Logger : ILogger)
      begin
        Logger.FatalFmt(Msg, LArgs);
      end
    );
  end;
  
  procedure TMetaLogger.FatalVal(const Vals : array of TValue);
  var
    LVals : TArray<TValue>;
  begin
    UnsafeCopyOpenArray<TValue>(Vals, LVals);
  
    IterateLoggers(
      procedure (Logger : ILogger)
      begin
        Logger.FatalVal(LVals);
      end
    );
  end;
  