anchor.diff:  
   procedure TMetaLogger.LeaveMethod(AClass : TClass; MethodAddress : Pointer; AResult : TValue);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.LeaveMethod(ARecord : PTypeInfo; MethodAddress : Pointer; AResult : TValue);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.LeaveSection(const Vals : array of const);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.LeaveSection(const Msg : String);
   begin
  -
  +  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;
   
   procedure TMetaLogger.Log(Severity : TLogMsgSeverity; const Msg : String);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.Log(Severity : TLogMsgSeverity; const Vals : array of const);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.LogFmt(Severity : TLogMsgSeverity; const Msg : String; const Args : array of const);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.LogVal(Severity : TLogMsgSeverity; const Vals : array of TValue);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.Warning(const Vals : array of const);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.Warning(const Msg : String);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.WarningFmt(const Msg : String; const Args : array of const);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   procedure TMetaLogger.WarningVal(const Vals : array of TValue);
   begin
  -
  +  IterateLoggers(
  +    procedure (Logger : ILogger)
  +    begin
  +      //
  +    end
  +  );
   end;
   
   { TAbstractLogOutput }
  
positive.code: 
  procedure TMetaLogger.EnterMethod(AClass : TClass; MethodAddress : Pointer; const Params : array of TValue);
  begin
  
  end;
  
  procedure TMetaLogger.EnterMethod(ARecord : PTypeInfo; MethodAddress : Pointer; const Params : array of TValue);
  begin
  
  end;
  
  procedure TMetaLogger.EnterSection(const Msg : String);
  begin
  
  end;
  
  procedure TMetaLogger.EnterSection(const Vals : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.EnterSectionFmt(const Msg : String; const Args : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.EnterSectionVal(const Vals : array of TValue);
  begin
  
  end;
  
  procedure TMetaLogger.Error(const Msg : String);
  begin
  
  end;
  
  procedure TMetaLogger.Error(const Vals : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.ErrorFmt(const Msg : String; const Args : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.ErrorVal(const Vals : array of TValue);
  begin
  
  end;
  
  procedure TMetaLogger.Fatal(const Vals : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.Fatal(const Msg : String);
  begin
  
  end;
  
  procedure TMetaLogger.FatalFmt(const Msg : String; const Args : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.FatalVal(const Vals : array of TValue);
  begin
  
  end;
  
  procedure TMetaLogger.Info(const Msg : String);
  begin
  
  end;
  
  procedure TMetaLogger.Info(const Vals : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.InfoFmt(const Msg : String; const Args : array of const);
  begin
  
  end;
  
  procedure TMetaLogger.InfoVal(const Vals : array of TValue);
  begin
  
  end;
  
  procedure TMetaLogger.IterateLoggers(const Action : TProc<ILogger>);
  
negative.code: 
  procedure TMetaLogger.AddLogger(const Logger : ILogger);
  begin
    FLoggers.Add(Logger);
  end;
  
  constructor TMetaLogger.Create;
  