Instances of literal bindings assigned units of measure compile, but don't carry the measure.
Code to reproduce
type [<Measure>] rad
[<Literal>]
let pi = 3.14
let a = pi<rad>
let f (a:float<rad>) = a
f a
Expected behavior
Either an error on the assignment of a, or for f to accept pi
Actual behavior
Error FS0001 This expression was expected to have type
'float<rad>'
but here has type
'float' F#
Known workarounds
let a = pi*1.<rad>
Related information
- Windows 10
- FSI 10.4.0 for F# 4.6
- Visual Studio 2019
Instances of literal bindings assigned units of measure compile, but don't carry the measure.
Code to reproduce
Expected behavior
Either an error on the assignment of a, or for f to accept pi
Actual behavior
Known workarounds
let a = pi*1.<rad>Related information