У меня есть 3 типа, A
, B
и C
в F #. Два типа, A
и B
У меня нет возможности изменять код для. Тип C
- это тип, которым я управляю.
Я могу написать перегруженные операторы, такие как -
type C () =
static member (><) (alpha : A) (beta : B) : C = zeta alpha beta
static member (><) (beta : B) (alpha : A) : C = omega alpha beta
Когда я пытаюсь вызвать оператор, компиляция выдает следующую ошибку -
Error FS0043 None of the types 'A, B' support the operator '><'
Как я могу обойти проблему так, чтобы я мог определить перегруженные операторы с операндами, определения типов которых я не контролирую? Единственный тип, определением которого я управляю, является типом результата, C
!