¿Cómo defino operadores de conversión implícitos para registros mutuamente dependientes?

Estoy usando la sobrecarga del operador para los registros en Delphi 2006. (No responda esta pregunta diciéndome que no lo haga).

Tengo dos tipos de registro con elimplícit operador sobrecargado. Ambos están solo en la implementación del módulo, no expuestos a través de la interfaz.

Mi problema es que ahora que son mutuamente dependientes, no sé cómo reenviar la declaración del segundo tipo al compilador. Sé cómo hacer esto con funciones, procedimientos y clases, pero no con registros.

Aquí hay un ejemplo simplificado de lo que estoy tratando de hacer:

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;

Respuestas a la pregunta(2)

Su respuesta a la pregunta