Parâmetros de tipo resolvidos estaticamente

O snippet a seguir (simplificado) é extraído de um aplicativo que estou implementando, que usa consistentemente Parâmetros de tipo resolvidos estaticamente.

type A< ^B when ^B : (static member MyMember : Unit -> Unit)> = {
  Field : unit
}
type TestA = {
  AField : A< BTy >
}
and BTy = {
  BField : Unit
} with
  static member MyMember () = ()

IntelliSense me dá o seguinte erro quando eu definir o tipo de campo AField (AField : A< BTy >) qual é:O tipo 'BTy' não suporta nenhum operador chamado 'MyMember'.

EDITADO. Declará-los separadamente funciona, mas se eu tiver uma referência mútua e eunão podes declarar um terceiro tipo para colocar no topo que contém as informações comuns dos dois tipos. O que devo fazer para evitar esse problema? De qualquer forma, se eu definir abaixo as definiçõeslet pluto = ("" :> obj) :?> A< BTy > funciona, imagino porque ambos os tipos são visíveis a partir da ligação let.

questionAnswers(2)

yourAnswerToTheQuestion