How do F# units of measure work?
According to a response on the next related blog post, they are a purely static mechanism in the F# compiler. So there is no CLR representation of the units data.
Its not entirely clear whether it currently works with non-float types, but from the perspective of the type system it is theoretically possible.
The best (and I think official) place to find out about this is on Andrew Kennedy's blog.
Here are the (current) relevant posts.
- Units of Measure in F#: Part One, Introducing Units
- Units of Measure in F#: Part Two, Unit Conversions
- Units of Measure in F#: Part Three, Generic Units
- Units of Measure in F#: Part Four, Parameterized Types
As I said in the post that your answerer referred to, this is most definitely something that you CAN'T do in C# (though I wish you could).