Operadores inline sobrecarregados em F #: (| + |)
Estou tentando definir um operador sobrecarregado, por ex.|+|
, como o seguinte:
let inline ( |+| ) (m1 : #IMeasurable) (m2 : #IMeasurable) = m1.Measure + m2.Measure
O problema é que não posso fazer algo como:
let three = m1 |+| m2 |+| m3
Porque o operador|+|
não está definido para o caso(m1 : int) (m2 : #IMeasurable)
. Existe uma maneira de sobrecarregar esse operador ou usar restrições de tipo estático para tornar a expressão acima possível? Existe uma maneira de modificarIMeasurable
(que eu posso editar) para que isso seja possível? Qualquer outra coisa que permita que a expressão acima funcione?
Obrigado.