F # error del compilador FS0030, problemas con la restricción de valor
He leído la propaganda enStrangeLights, He leído elpaso de Expert F # (página 119), pero no puedo ver cómo se aplican a mi código:
Para mis pruebas, quiero verificar la igualdad entre flotadores, con un poco de tolerancia. Estoy convirtiendo todo a unidades de medida, pero quiero poder ser 'genérico':
let toleq (e:float<_>) a b = (abs ( a - b ) ) < e
Luego puedo usar esto para verificar la igualdad en diferentes 'tipos' de flotador, o curry para hacer uno personalizado:
toleqm = toleq 1.0e-10<m>
Pero recibo el siguiente mensaje:
Type inference has inferred the signature
val toleq : float<'u> -> float<'u> -> float<'u> -> bool
Either define 'toleq' as a simple data term, make it a function, or add a
type constraint to instantiate the type parameters.
No veo cómo puedo hacer más para que sea una función: no puedo ver ningún parámetro implícito.
¿Qué pasa?