<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx</link><description>Do you remember NASA's Mars Climate Orbiter? It was lost in September 1999 because of a confusion between metric and so-called " English " units of measurement . The report into the disaster made many recommendations. In all likelihood, the accident could</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>F# 1.9.6.0 Link Roundup</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8906796</link><pubDate>Fri, 29 Aug 2008 23:54:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8906796</guid><dc:creator>Jomo Fisher -- Sharp Things</dc:creator><description>&lt;p&gt;- Units of Measure in F#: Part One, Introducing Units [ reddit ] [ digg ] - Welcome to the F# CTP project&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8906945</link><pubDate>Sat, 30 Aug 2008 00:33:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8906945</guid><dc:creator>MichaelGG</dc:creator><description>&lt;p&gt;This is fantastic. I had come across your page last night and seen this. What a surprise to see this included in F# the next morning! Thank you for F#.&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8907776</link><pubDate>Sat, 30 Aug 2008 04:29:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8907776</guid><dc:creator>Pon</dc:creator><description>&lt;p&gt;Indeed, this is awesome.&lt;/p&gt;
&lt;p&gt;However, what about things such as:&lt;/p&gt;
&lt;p&gt;type Vector = struct&lt;/p&gt;
&lt;p&gt; &amp;nbsp; val X:float&lt;/p&gt;
&lt;p&gt; &amp;nbsp; val Y:float&lt;/p&gt;
&lt;p&gt; &amp;nbsp; val Z:float&lt;/p&gt;
&lt;p&gt;new(x,y,z) =&lt;/p&gt;
&lt;p&gt; &amp;nbsp;X= x&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Y = y&lt;/p&gt;
&lt;p&gt; &amp;nbsp;Z = z&lt;/p&gt;
&lt;p&gt;Would I be able to do something like&lt;/p&gt;
&lt;p&gt;Accelerate(Vector(1.0&amp;lt;m/s&amp;gt;, 1.0&amp;lt;m/s&amp;gt;, 1.0&amp;lt;m/s&amp;gt;), 3&amp;lt;m s^-2&amp;gt;, 2.0&amp;lt;s&amp;gt;)?&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8907788</link><pubDate>Sat, 30 Aug 2008 04:33:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8907788</guid><dc:creator>Pon</dc:creator><description>&lt;p&gt;And, if I am, what will the Vector structure appear to be to non-F# code?&lt;/p&gt;
</description></item><item><title>F# Releases September 2008 CTP!</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8908407</link><pubDate>Sat, 30 Aug 2008 08:18:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8908407</guid><dc:creator>Matthew Podwysocki</dc:creator><description>&lt;p&gt;Don Syme just announced today the F# Community Technical Preview (CTP) Release September 2008 which is&lt;/p&gt;
</description></item><item><title>F# Releases September 2008 CTP!</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8908419</link><pubDate>Sat, 30 Aug 2008 08:20:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8908419</guid><dc:creator>Matthew Podwysocki's Blog</dc:creator><description>&lt;p&gt;Don Syme just announced today the F# Community Technical Preview (CTP) Release September 2008 which is&lt;/p&gt;
</description></item><item><title>F# Releases September 2008 CTP!</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8908524</link><pubDate>Sat, 30 Aug 2008 08:55:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8908524</guid><dc:creator>Community Blogs</dc:creator><description>&lt;p&gt;Don Syme just announced today the F# Community Technical Preview (CTP) Release September 2008 which is&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8911014</link><pubDate>Sun, 31 Aug 2008 00:18:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8911014</guid><dc:creator>andrewkennedy</dc:creator><description>&lt;p&gt;Pon: yes, you can *parameterize* other types (such as Vector) on units-of-measure. Here's an example, in which the value v has type Vector&amp;lt;m/s&amp;gt;. More on this in another article, coming soon!&lt;/p&gt;
&lt;p&gt;- Andrew.&lt;/p&gt;
&lt;p&gt;[&amp;lt;Measure&amp;gt;] type m&lt;/p&gt;
&lt;p&gt;[&amp;lt;Measure&amp;gt;] type s&lt;/p&gt;
&lt;p&gt;type Vector&amp;lt; [&amp;lt;Measure&amp;gt;] 'a&amp;gt; = struct&lt;/p&gt;
&lt;p&gt; &amp;nbsp;val X:float&amp;lt;'a&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;val Y:float&amp;lt;'a&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;val Z:float&amp;lt;'a&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;new(x,y,z) = {X=x;Y=y;Z=z}&lt;/p&gt;
&lt;p&gt;end&lt;/p&gt;
&lt;p&gt;let v = Vector(2.0&amp;lt;m/s&amp;gt;,3.0&amp;lt;m/s&amp;gt;,4.0&amp;lt;m/s&amp;gt;)&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8911822</link><pubDate>Sun, 31 Aug 2008 04:42:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8911822</guid><dc:creator>MikeGale</dc:creator><description>&lt;p&gt;Thanks for this.&lt;/p&gt;
&lt;p&gt;It's a real pleasure to see a &amp;quot;real sytem&amp;quot; implemented. &amp;nbsp;Proper engineering and scientific calculations (and graphs...) have for a long time been ignored in computer science, often by ignorance.&lt;/p&gt;
&lt;p&gt;Now we don't have to roll our own for a lot of what is needed.&lt;/p&gt;
</description></item><item><title>FSharpp to FSProj Converter</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8912336</link><pubDate>Sun, 31 Aug 2008 08:26:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8912336</guid><dc:creator>Chris Smith's completely unique view</dc:creator><description>&lt;p&gt;Wow, what a busy week!&amp;amp;#160; The F# CTP is out the door, and it's already making reverberations around&lt;/p&gt;
</description></item><item><title>F# nouvelle CTP (1.9.6)</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8913035</link><pubDate>Sun, 31 Aug 2008 12:39:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8913035</guid><dc:creator>Pierrick's Blog</dc:creator><description>&lt;p&gt;Que dire de cette CTP , si ce n' est qu' elle est mieux int&amp;#233;gr&amp;#233;e dans Visual Studio. intellisense de&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8913236</link><pubDate>Sun, 31 Aug 2008 14:37:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8913236</guid><dc:creator>Hiroshi Okagawa</dc:creator><description>&lt;p&gt;Cool!&lt;/p&gt;
&lt;p&gt;As my major at university was Physics, unit checking and inferring are more natural than type checking and inferring.&lt;/p&gt;
&lt;p&gt;Let me ask a question.&lt;/p&gt;
&lt;p&gt;1) &amp;quot;dimensionless&amp;quot; float&lt;/p&gt;
&lt;p&gt;In physics, some quantities doesn't have dimensions and the fact that it is dimensionless is important.&lt;/p&gt;
&lt;p&gt;For example, &amp;quot;Reynolds number&amp;quot; in flued mechanics.&lt;/p&gt;
&lt;p&gt;(&lt;a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Dimensionless_quantity"&gt;http://en.wikipedia.org/wiki/Dimensionless_quantity&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;My question is, are there any way to require a float to be dimensionless in F#?&lt;/p&gt;
&lt;p&gt;2) Assert by units&lt;/p&gt;
&lt;p&gt;I don't know whether possible or not, but I think it would be very interesting if I could embed assertion by units and can be checked statically.&lt;/p&gt;
&lt;p&gt;Something like following:&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;let m = accel / time / time&lt;/p&gt;
&lt;p&gt; &amp;nbsp;assert(m:float&amp;lt;kg&amp;gt;)&lt;/p&gt;
&lt;p&gt; &amp;nbsp;let x = m / mass&lt;/p&gt;
&lt;p&gt; &amp;nbsp;assert(x:float&amp;lt;&amp;quot;dimensionless&amp;quot;&amp;gt;)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;:&lt;/p&gt;
&lt;p&gt;Anyway, this is a great job and I hope you to keep moving forward to improve F#!&lt;/p&gt;
</description></item><item><title>F# September CTP</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8913759</link><pubDate>Sun, 31 Aug 2008 19:15:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8913759</guid><dc:creator>Thoughts and Code</dc:creator><description>&lt;p&gt;Ευχάριστα νέα για τους φίλους της F#, καθώς έχουμε στα χερια μας το πρώτο release της productized πλέον&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8913938</link><pubDate>Sun, 31 Aug 2008 20:35:33 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8913938</guid><dc:creator>kfarmer</dc:creator><description>&lt;p&gt;@Microsoft: &amp;nbsp;PLEASE convince Anders, Brad, etc to figure out a way to bake this into the CLR type system. &amp;nbsp;There are other languages than F# (eg, Python, C#) that science geeks use. &amp;nbsp;:)&lt;/p&gt;
&lt;p&gt;@Hiroshi:&lt;/p&gt;
&lt;p&gt;and what should assert(m:float&amp;lt;kg&amp;gt;) mean?&lt;/p&gt;
&lt;p&gt;.. assert that m has the same axes as kilograms? &amp;nbsp;(eg, float&amp;lt;lb&amp;gt;, float&amp;lt;g&amp;gt;, float&amp;lt;solarMass&amp;gt; .. all would succeed)&lt;/p&gt;
&lt;p&gt;.. assert that m is a float of kilograms? (eg, float&amp;lt;lb&amp;gt;, etc would fail)&lt;/p&gt;
&lt;p&gt;These are very different questions, but the way the assert is written it's impossible to tell what is meant.&lt;/p&gt;
&lt;p&gt;Re &amp;quot;dimensionless&amp;quot; quantities:&lt;/p&gt;
&lt;p&gt;These differ from scalars how? &amp;nbsp;Should counts (eg, Avogradro's number) be handled differently?&lt;/p&gt;
&lt;p&gt;This is actually a peeve of mine in the way the mathematical powers-the-be have treated angular measure. &amp;nbsp;&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8913979</link><pubDate>Sun, 31 Aug 2008 20:57:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8913979</guid><dc:creator>int19h</dc:creator><description>&lt;p&gt;This is seriously great; however, it begs the question: can those unit types be used for numeric types other than float? Can I use, say, decimal? Or even int? What if I want to roll out my own BigInteger/BigDecimal - will I be able to hook it into the type system seamlessly to the end user?&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8914084</link><pubDate>Sun, 31 Aug 2008 21:50:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8914084</guid><dc:creator>int19h</dc:creator><description>&lt;p&gt;Also, it strikes me odd that I can't write something like:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;[&amp;lt;Measure&amp;gt;] type g&lt;/p&gt;
&lt;p&gt; &amp;nbsp;[&amp;lt;Measure&amp;gt;] type kg = 1000 * g&lt;/p&gt;
&lt;p&gt;let x = 1.0&amp;lt;kg&amp;gt;&lt;/p&gt;
&lt;p&gt;Of course I could treat kg as a val rather than type:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;let kg = 1000&amp;lt;g&amp;gt;&lt;/p&gt;
&lt;p&gt;but then I can't use it in literal type suffixes.&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8916257</link><pubDate>Mon, 01 Sep 2008 13:05:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8916257</guid><dc:creator>andrewkennedy</dc:creator><description>&lt;p&gt;I'll have more to say in the next article, but just to answer some of these questions in brief:&lt;/p&gt;
&lt;p&gt;* The built-in types float, float32 and decimal support units-of-measure, and units can be used on constants of these types. For example:&lt;/p&gt;
&lt;p&gt;&amp;gt; 2.0f&amp;lt;kg&amp;gt;;;&lt;/p&gt;
&lt;p&gt;val it : float32&amp;lt;kg&amp;gt; = 2.0f&lt;/p&gt;
&lt;p&gt;&amp;gt; 200.0M&amp;lt;USD&amp;gt;;;&lt;/p&gt;
&lt;p&gt;val it : decimal&amp;lt;USD&amp;gt; = 200.0M&lt;/p&gt;
&lt;p&gt;&amp;gt;&lt;/p&gt;
&lt;p&gt;* You can define your own types (e.g. vector, complex, etc.) parameterized on units-of-measure, with operations such as arithmetic. See the vector example earlier - more detail coming in a future article.&lt;/p&gt;
&lt;p&gt;* Indeed you can define &amp;quot;related&amp;quot; units as values e.g. let g = 0.001&amp;lt;kg&amp;gt;. Alternatively, you can define separate types, and then define conversion factors with appropriate units. More in the next article in the series.&lt;/p&gt;
&lt;p&gt;* The syntax for &amp;quot;no units at all&amp;quot;, a.k.a. dimensionless, is &amp;quot;1&amp;quot;. For example, float&amp;lt;1&amp;gt;, vector&amp;lt;1&amp;gt;. For the three built-in types, the non-parameterized variants are actually just aliases:&lt;/p&gt;
&lt;p&gt; &amp;nbsp;type float = float&amp;lt;1&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;type float32 = float32&amp;lt;1&amp;gt;&lt;/p&gt;
&lt;p&gt; &amp;nbsp;type decimal = decimal&amp;lt;1&amp;gt;&lt;/p&gt;
&lt;p&gt;You can see this if you divide something with units by something else of the same type:&lt;/p&gt;
&lt;p&gt;&amp;gt; let x = 2.0&amp;lt;kg&amp;gt;;;&lt;/p&gt;
&lt;p&gt;val x : float&amp;lt;kg&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;gt; x/x;;&lt;/p&gt;
&lt;p&gt;val it : float = 1.0&lt;/p&gt;
&lt;p&gt;&amp;gt;&lt;/p&gt;
</description></item><item><title>Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8917506</link><pubDate>Mon, 01 Sep 2008 22:41:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8917506</guid><dc:creator>DotNetKicks.com</dc:creator><description>&lt;p&gt;You've been kicked (a good thing) - Trackback from DotNetKicks.com&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8931186</link><pubDate>Sun, 07 Sep 2008 22:38:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8931186</guid><dc:creator>Andre</dc:creator><description>&lt;p&gt;&amp;quot;An acceleration&amp;quot; or &amp;quot;a distance&amp;quot; is ambiguous, proper names would be linear acceleration and linear distance as a distance could also be a rotational distance.&lt;/p&gt;
</description></item><item><title>The Weekly Source Code 34 - The Rise of F#</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8964790</link><pubDate>Thu, 25 Sep 2008 12:46:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8964790</guid><dc:creator>Readed By Wrocław NUG members</dc:creator><description>&lt;p&gt;First, let me remind you that in my new ongoing quest to read source code to be a better developer ,&lt;/p&gt;
</description></item><item><title>Recursos de F# y Programación Funcional</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#8996042</link><pubDate>Sat, 11 Oct 2008 18:54:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8996042</guid><dc:creator>Angel "Java" Lopez</dc:creator><description>&lt;p&gt;F# es un lenguaje funcional, creado por Microsoft. Implementado bajo el soporte de .NET CLR, es un lenguaje&lt;/p&gt;
</description></item><item><title>F#中有趣的计量单位</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#9156006</link><pubDate>Sat, 29 Nov 2008 15:23:17 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9156006</guid><dc:creator>Anders Cui</dc:creator><description>&lt;p&gt;NASA气象卫星意外坠落说明，计量单位绝非小事。为编程语言添加对计量单位的支持可以很大程度上避免这样的错误，编程任务也变得更有趣。F#提供了对计量单位的静态检查，并且封装了国际单位制的各个单位和物理常量，另外我们也可以定义自己的单位；在单位之间进行换算也很简单；此外F#还支持计量单位的泛型。作为对NASA气象卫星的纪念，本文最后给出了一个模拟太阳系的例子 :)&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#9170804</link><pubDate>Wed, 03 Dec 2008 19:57:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9170804</guid><dc:creator>qwertie</dc:creator><description>&lt;p&gt;I'm puzzled. Why not allow unit checking on integers, or, for that matter, any type whatsoever? I wrote a units-of-measure extension to boo as a 5th-year undergrad project; this compiler step assumed that absolutely everything in a program had an associated unit. This fact had no effect on type checking until the user started annotating variables or constants with types, and then the unit inference engine worked its magic looking for inconsistencies.&lt;/p&gt;
&lt;p&gt;In my engine, I just assumed certain rules about operators, like&lt;/p&gt;
&lt;p&gt;'a + 'a -&amp;gt; 'a&lt;/p&gt;
&lt;p&gt;'a - 'a -&amp;gt; 'a&lt;/p&gt;
&lt;p&gt;'a * 'b -&amp;gt; 'a*'b&lt;/p&gt;
&lt;p&gt;'a &amp;lt;&amp;lt; _ -&amp;gt; 'a&lt;/p&gt;
&lt;p&gt;(where _ means 'dimensionless')&lt;/p&gt;
&lt;p&gt;Therefore any type that had these operators defined automatically got a reasonable default unit checking behavior.&lt;/p&gt;
&lt;p&gt;There exist certain algorithms in which a variable has to take on different units at different points in time, so I also had a special annotation that (IIRC) disabled unit checking with respect to a specific variable.&lt;/p&gt;
</description></item><item><title>re: Units of Measure in F#: Part One, Introducing Units</title><link>http://blogs.msdn.com/andrewkennedy/archive/2008/08/29/units-of-measure-in-f-part-one-introducing-units.aspx#9519186</link><pubDate>Mon, 30 Mar 2009 18:10:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9519186</guid><dc:creator>thefellow3j</dc:creator><description>&lt;p&gt;Units!? YES! This is (the start of) EXACTLY what I need for my job *right now*! F# *just* peaked my interest.&lt;/p&gt;
&lt;p&gt;I can't tell you how much I'll appreciate this feature.&lt;/p&gt;
</description></item></channel></rss>