Методы дискриминации членов профсоюза
Я хочу определить метод, разделяемый всеми членами дискриминационного союза. В настоящее время я реализовал это, как это, но это кажется действительно не элегантным - конечно, есть лучший способ. Предложения?
type A =
{AData:string}
member this.SharedMethod (x:float) : int= ...
type B =
{BData:float}
member this.SharedMethod (x:float) : int= ...
type AB =
| A of A
| B of B
let CallSharedMethod (ab:AB) x =
match ab with
| AB.A(a') -> a'.SharedMethod x
| AB.B(b') -> b'.SharedMethod x