Como definir operadores de conversão implícitos para registros mutuamente dependente

Estou usando o operador sobrecarregando os registros no Delphi 2006. (Por favor, não responda a essa pergunta dizendo para não fazê-lo.)

Tenho dois tipos de registro com oimplícit operador sobrecarregado. Ambos são apenas na implementação do módulo, não expostos pela interface.

Meu problema é que, agora que eles são mutuamente dependentes, não sei como encaminhar o segundo tipo para o compilador. Eu sei como fazer isso com funções, procedimentos e classes, mas não com registro

qui está um exemplo simplificado do que estou tentando faze

implementation

type
  TMyRec1 = record
    Field1 : Integer;
    class operator Implicit(a: TMyRec2): TMyRec1;  // <---- Undeclared Identifier here.
  end;

  TMyRec2 = record
    Field2: Integer;
    class operator Implicit(a: TMyRec1): TMyRec2;
  end;

class operator TMyRec1.Implicit(a:TMyRec2): TMyRec1;
begin
  Result.Field1 := a.Field2;
end;

class operator TMyRec2.Implicit(a:TMyRec2): TMyRec2;
begin
  Result.Field2 := a.Field1;
end;

questionAnswers(2)

yourAnswerToTheQuestion