views:

1193

answers:

2

Has anyone had a chance to dig into how F# Units of Measure work? Is it just type-based chicanery, or are there CLR types hiding underneath that could (potentially) be used from other .net languages? Will it work for any numerical unit, or is it limited to floating point values (which is what all the examples use)?

+7  A: 

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.

megabytephreak
See latest blog post by Andrew Kennedy (in the answer below), UOM are available for any numeric type, as well as composite types.
Benjol
+5  A: 

The best (and I think official) place to find out about this is on Andrew Kennedy's blog.

Here are the (current) relevant posts.

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).

Benjol