Я получаю сообщение об ошибке «... отсутствует ограничение типа ...» в операторе умножения для ^G * ^G -> ^G
, даже если это ограничение было добавлено И выполняется для типа вызывающего абонента (^ G).Также очень странно, что вторая половина сообщения об ошибке за «или»:
when (^G or ^?299125) : (static member ( * ): ^G * ^?299125 -> ^G
Однако левая и правая части выражения имеют тип ^ G (он же BigRational).Интересно, почему F # считает, что это ^?299125
.