Не могу решить проблему с ошибкой компиляции в Delphi.
В коде у меня дженерик класс TMySpecialArray который умеет хранить и сравнивать значения любого типа. Для того что бы он мог сразвнивать значения любого типа класс имеет дженерик параметр CmpT: IComparer. 
Когда я использую мой класс просто в коде то все работает нормально. 
Если я использую этот мой класс из другого дженерик класса (см. TMySpecialArrayTest в коде ниже) я получаю ошибку коммпиляции.
"[dcc64 Error] Unit1.pas(45): E2514 Type parameter 'CmpT' must support interface 'System.Generics.Defaults.IComparer'"
Помогите понять почему TMySpecialArray не работает если использован и другого дженерик класса.
Использую Delphi 12.3.
type
  TMySpecialArray<T:constructor; CmpT: IComparer<T>> = class
  private
    FComparer: CmpT;
  end;
  TMyComparer<TT> = class(TInterfacedObject, IComparer<TT>)
  public
    function Compare(const Left, Right: TT): Integer;
  end;
  TMySpecialArrayTest<V: constructor> = class
  public
    Arr: TMySpecialArray<V, TMyComparer<V> >; //!!! здесь ошибка компиляции
  end;
var
  var1: TMySpecialArray<Integer, TMyComparer<Integer>>;
  var2: TMySpecialArray<TObject, TMyComparer<TObject>>;
  var3: TMySpecialArray<string, TMyComparer<string>>;
  var4: TMySpecialArrayTest<Integer>;
begin
   var4 := TMySpecialArrayTest<Integer>.Create;
end;