<?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>Don Syme's WebLog on the F# Language and Related Topics : F# Announcements</title><link>http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx</link><description>Tags: F# Announcements</description><dc:language>en-GB</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Unleash those transistors! General Purpose GPU and x64 Data Parallel Multicore Programming with Accelerator from F#</title><link>http://blogs.msdn.com/dsyme/archive/2009/12/15/unleash-those-transistors-general-purpose-gpu-and-x64-data-parallel-multicore-programming-with-accelerator-from-f.aspx</link><pubDate>Tue, 15 Dec 2009 14:26:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9937053</guid><dc:creator>dsyme</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9937053.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9937053</wfw:commentRss><description>One of my colleagues at MSR Cambridge, Satnam Singh , has written his very first blog entry, and what a beauty it is ! Data parallel multicore programming from F# targeting both CPU and GPU - what joy! Microsoft recently released a preview of the Accelerator...(&lt;a href="http://blogs.msdn.com/dsyme/archive/2009/12/15/unleash-those-transistors-general-purpose-gpu-and-x64-data-parallel-multicore-programming-with-accelerator-from-f.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9937053" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Design+Notes/default.aspx">F# Design Notes</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item><item><title>WebSharper: F#-based Rich Client/Server Web Applications</title><link>http://blogs.msdn.com/dsyme/archive/2009/12/08/websharper-f-based-rich-client-server-web-applications.aspx</link><pubDate>Tue, 08 Dec 2009 20:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9934275</guid><dc:creator>dsyme</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9934275.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9934275</wfw:commentRss><description>&lt;P&gt;My co-author on Expert F#, Adam Granicz, has been leading &lt;A href="http://www.intellifactory.com/" mce_href="http://www.intellifactory.com/"&gt;Intellifactory&lt;/A&gt; to develop the F#-based &lt;A href="http://www.intellifactory.com/products/wsp/Home.aspx" mce_href="http://www.intellifactory.com/products/wsp/Home.aspx"&gt;WebSharper&lt;/A&gt; platform for developing client-server applications that execute as&amp;nbsp;Javascript in the browser and&amp;nbsp;as compiled .NET code&amp;nbsp;on the server.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Intellifactory seem to have set about&amp;nbsp;answering the question of "just how&amp;nbsp;simple, clean&amp;nbsp;and productive can you make&amp;nbsp;developing rich web applications that target Javascript?" (my words, not theirs).&amp;nbsp;&amp;nbsp;While still in beta, signs are that Intellifactory are putting together an impressive&amp;nbsp;technology&amp;nbsp;that&amp;nbsp;makes really&amp;nbsp;good use of F#'s unique facilities to simplify this class of applications. WebSharper&amp;nbsp;seems to draw inspiration from &lt;A href="http://groups.inf.ed.ac.uk/links/" mce_href="http://groups.inf.ed.ac.uk/links/"&gt;LINKS&lt;/A&gt; and &lt;A href="http://blogs.msdn.com/controlpanel/blogs/tomasp.net/fswebtools/files/fswebtoolkit-ml.pdf" mce_href="http://blogs.msdn.com/controlpanel/blogs/tomasp.net/fswebtools/files/fswebtoolkit-ml.pdf"&gt;Tomas Petricek's AFAX project&lt;/A&gt;, with an added focus on simplicity and productivity.&lt;/P&gt;
&lt;P&gt;Anton has a &lt;A href="http://www.intellifactory.com/blogs/anton.tayanovskyy/2009/12/8/WebSharper---Write-F!sharp!-and-Run-JavaScript.article" mce_href="http://www.intellifactory.com/blogs/anton.tayanovskyy/2009/12/8/WebSharper---Write-F!sharp!-and-Run-JavaScript.article"&gt;good introductory blog&lt;/A&gt; on developing with WebSharper here.&lt;/P&gt;
&lt;P&gt;We also owe a huge thank you to Intellifactory (particularly Adam and Anton) for their excellent, timely high quality feedback on F# itself.&lt;/P&gt;
&lt;P&gt;Here's an excerpt from the &lt;A href="http://www.intellifactory.com/" mce_href="http://www.intellifactory.com/"&gt;Intellifactory website&lt;/A&gt;:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;The IntelliFactory &lt;SPAN&gt;WebSharper™ Platform&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;SPAN&gt;&lt;/SPAN&gt;Writing good web applications is not an easy task today. It requires a mastery of numerous languages (JavaScript, HTML, CSS), and an acute awareness of existing standards and browser implementation quirks. Poor debugging tools, and the lack of compositionality and component reuse in the multi-tiered, multi-language web environment compound the problem even more.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;With the IntelliFactory &lt;SPAN&gt;WebSharper™ Platform&lt;/SPAN&gt; you can develop rich, client-based, and highly responsive web applications using &lt;/EM&gt;&lt;A href="http://fsharp.net/"&gt;&lt;EM&gt;F#&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;, enjoying all the benefits of Visual Studio™ and IntelliSense™. Developing both the client and server-side functionality with F# gives you unrivaled productivity, a dramatically more compact code base, and powerful language features to get your tasks done quicker, more robustly than ever before. &lt;/EM&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9934275" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category></item><item><title>F# related job at Future Social Experiences (FUSE) Lab UK </title><link>http://blogs.msdn.com/dsyme/archive/2009/11/27/f-related-job-at-future-social-experiences-fuse-lab-uk.aspx</link><pubDate>Fri, 27 Nov 2009 23:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9929535</guid><dc:creator>dsyme</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9929535.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9929535</wfw:commentRss><description>&lt;P&gt;&lt;FONT size=3 face=Calibri&gt;Are you interested in using probabilistic techniques to analyze online data and build new social experiences around it? The FUSE group&amp;nbsp;located at Microsoft Research in Cambridge is&amp;nbsp;hiring. The group use F# a&amp;nbsp;lot and have applied it successfully on many projects.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;A href="https://careers.microsoft.com/JobDetails.aspx?jid=9575"&gt;https://careers.microsoft.com/JobDetails.aspx?jid=9575&lt;/A&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;&lt;EM&gt;The Future Social Experiences (FUSE) Lab UK team is a newly founded group co-located with Microsoft Research Cambridge. It will focus on new social experiences in Microsoft’s Online Services through computational intelligence technologies and through exploitation, combination and analysis of available data sources within and outside of Microsoft. In addition, the team’s charter is to bridge between Microsoft Research Cambridge, FUSE Labs, and Microsoft’s Online Services teams, including teams in Search, Ads &amp;amp; Portal in the Online Services Division (“Information Seekers”), teams in Office &amp;amp; SharePoint in Microsoft Business Division (“Information Workers”) and teams in Xbox Live and Window Mobile in the Entertainment and Devices Division (“Gamers and Mobile Workers”). &lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;&lt;EM&gt;We are looking for mathematically astute, online-savvy applied researchers and developers. Necessary skills for this position include:&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Fit within an applied and basic research lab&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Development experience in various programming languages, including C++, C#, Python, SQL, F# and JavaScript&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Familiarity with Windows design tools and frameworks&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Development knowledge and experience of cloud applications and web services&lt;/FONT&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 72pt; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-fareast-font-family: Wingdings; mso-bidi-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT size=3 face=Calibri&gt;Ability to build &lt;/FONT&gt;&lt;/EM&gt;&lt;A href="http://en.wikipedia.org/wiki/Software_prototyping#Throwaway_prototyping"&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;&lt;EM&gt;throw-away/rapid prototypes&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;&lt;EM&gt;The successful candidate will be working in a small, dynamic and fun&amp;nbsp;team reporting directly to the director of FUSE Labs UK. &lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;FONT size=3 face=Calibri&gt;If you are interested or require further information, please contact &lt;B&gt;Ruth Lenton&lt;/B&gt; at &lt;/FONT&gt;&lt;A href="mailto:cambhr@microsoft.com"&gt;&lt;B&gt;&lt;FONT color=#0000ff size=3 face=Calibri&gt;cambhr@microsoft.com&lt;/FONT&gt;&lt;/B&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;.&lt;B&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9929535" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category></item><item><title>A Great Blog Series on Algorithmic Programming in F#</title><link>http://blogs.msdn.com/dsyme/archive/2009/11/08/technical-programming-in-f.aspx</link><pubDate>Sun, 08 Nov 2009 18:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919269</guid><dc:creator>dsyme</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9919269.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9919269</wfw:commentRss><description>&lt;P&gt;I've just discovered &lt;A href="http://lepensemoi.free.fr/" mce_href="http://lepensemoi.free.fr/"&gt;Julien's&lt;/A&gt; great blog series on &lt;A href="http://lepensemoi.free.fr/index.php/category/tech" mce_href="http://lepensemoi.free.fr/index.php/category/tech"&gt;algorithmic programming in F#&lt;/A&gt;, a very useful resource. And if that doesn't whet your appetite, he also has a &lt;A href="http://lepensemoi.free.fr/index.php/category/fooding" mce_href="http://lepensemoi.free.fr/index.php/category/fooding"&gt;series on food&lt;/A&gt;&amp;nbsp;:-)&lt;/P&gt;
&lt;P&gt;Here are some of his recent posts:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://lepensemoi.free.fr/index.php/2009/11/06/technical-analysis-indicators-in-f-part-i" mce_href="http://lepensemoi.free.fr/index.php/2009/11/06/technical-analysis-indicators-in-f-part-i"&gt;&lt;EM&gt;Technical analysis indicators in F#&amp;nbsp;&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;This is the first part of a series on &lt;/EM&gt;&lt;A onclick="javascript:pageTracker._trackPageview('/outbound/article/http://en.wikipedia.org/wiki/Technical_analysis');" href="http://en.wikipedia.org/wiki/Technical_analysis"&gt;&lt;FONT color=#777777&gt;&lt;EM&gt;technical analysis&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt; indicators in F#. We will define the basic object holding the data series which will be used to compute the indicators. We will also describe some functions to check the integrity of the said data (and which will be useful when defining the indicators).&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN id=more-167&gt;&lt;A href="http://lepensemoi.free.fr/index.php/2009/11/02/an-immutable-range-library-in-f" mce_href="http://lepensemoi.free.fr/index.php/2009/11/02/an-immutable-range-library-in-f"&gt;&lt;EM&gt;An immutable range&amp;nbsp;library in F#&lt;/EM&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;An immutable range library in F# where a range is only defined by a minimum and a maximum value (hence, there is no step). &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;/SPAN&gt;
&lt;P mce_keep="true"&gt;&lt;A href="http://lepensemoi.free.fr/index.php/2009/10/27/an-immutable-queue-library-in-f" mce_href="http://lepensemoi.free.fr/index.php/2009/10/27/an-immutable-queue-library-in-f"&gt;&lt;EM&gt;An immutable queue in F#&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;An immutable queue library in F#. The queue is divided into two lists : one for dequeueing, and one for enqueueing. All operations are based on the List module. &lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;A href="http://lepensemoi.free.fr/index.php/2009/10/25/a-bit-array-or-bitset-library-in-f" mce_href="http://lepensemoi.free.fr/index.php/2009/10/25/a-bit-array-or-bitset-library-in-f"&gt;A bitset library in F#&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;A href="http://lepensemoi.free.fr/index.php/2009/10/19/readwrite-requests-for-a-group-of-files" mce_href="http://lepensemoi.free.fr/index.php/2009/10/19/readwrite-requests-for-a-group-of-files"&gt;ReadWrite Requests for groups of files&lt;/A&gt;&lt;/EM&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;In this post, we shall use read/write requests from a group of files considered as a single entity. We will also look at verifying the data. In our model, the group of files is defined by the files, and pieces. A piece is a chunk of data with a standardized size so that read/write requests are consistent. Of course, the last piece of the files stream could see its size differ from others since if the cumulative size of the files is not a multiple of the piece length.&lt;BR&gt;&lt;/P&gt;&lt;SPAN id=more-139&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;&lt;SPAN&gt;&lt;A href="http://lepensemoi.free.fr/index.php/2009/10/16/implementing-two-way-traffic-control-in-f" mce_href="http://lepensemoi.free.fr/index.php/2009/10/16/implementing-two-way-traffic-control-in-f"&gt;Implementing Two-way TCP Traffic Control in F#&lt;/A&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/P&gt;&lt;EM&gt;&lt;SPAN&gt;
&lt;BLOCKQUOTE&gt;&lt;EM&gt;&lt;SPAN&gt;
&lt;P&gt;This post describes how to implement two-way (TCP for instance) traffic control&amp;nbsp;in F# by modifying slightly a Trolltech article available at &lt;A onclick="javascript:pageTracker._trackPageview('/outbound/article/http://doc.trolltech.com/qq/qq17-ratecontrol.html');" href="http://doc.trolltech.com/qq/qq17-ratecontrol.html"&gt;http://doc.trolltech.com/qq/qq17-ratecontrol.html&lt;/A&gt;.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&lt;A title="Permanent Link to Crème pâtissière – Pierre Hermé, “Larousse des desserts”" href="http://lepensemoi.free.fr/index.php/2009/10/15/creme-patissiere-pierre-herme-larousse-des-desserts" rel=bookmark&gt;Crème pâtissière – Pierre Hermé, “Larousse des desserts” &lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&lt;A title="Permanent Link to Pâte à choux" href="http://lepensemoi.free.fr/index.php/2009/10/15/pate-a-choux" rel=bookmark&gt;Pâte à choux&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&lt;A title="Permanent Link to Le chocolat" href="http://lepensemoi.free.fr/index.php/2009/10/20/le-chocolat" rel=bookmark&gt;Le chocolat&amp;nbsp;&lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&lt;A title="Permanent Link to Pâte sucrée – Pierre Hermé, “Larousse des desserts”" href="http://lepensemoi.free.fr/index.php/2009/10/23/pate-sucree-version-pierre-herme" rel=bookmark&gt;Pâte sucrée – Pierre Hermé, “Larousse des desserts”&amp;nbsp;&lt;/A&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;P&gt;And the list goes on!&lt;/P&gt;
&lt;DIV id=post-34 class="post-34 post hentry category-tech tag-dot-net tag-fsharp tag-programming tag-syntax-coloring tag-syntaxhighlighter"&gt;
&lt;DIV class=title&gt;&lt;A title="Permanent Link to F# brush for Gorbatchev’s SyntaxHighlighter" href="http://lepensemoi.free.fr/index.php/2009/10/05/f-brush-for-gorbatchevs-syntaxhighlighter" rel=bookmark&gt;F# brush for Gorbatchev’s SyntaxHighlighter &lt;/A&gt;&lt;/DIV&gt;
&lt;DIV class=metadata&gt;&lt;A title="Permanent Link to Dual quicksort in F#" href="http://lepensemoi.free.fr/index.php/2009/09/22/quicksort" rel=bookmark&gt;Dual quicksort in F# &lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV id=post-13 class="post-13 post hentry category-tech tag-dot-net tag-fsharp tag-programming tag-quicksort tag-sorting-algorithm"&gt;
&lt;DIV class=metadata&gt;&lt;A title="Permanent Link to F# brush for Geshi" href="http://lepensemoi.free.fr/index.php/2009/09/22/f-brush-for-geshi" rel=bookmark&gt;F# brush for Geshi &lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV id=post-42 class="post-42 post hentry category-tech tag-dot-net tag-fsharp tag-geshi tag-programming tag-syntax-coloring"&gt;
&lt;DIV class=metadata&gt;&lt;A title="Permanent Link to Batch image resizer" href="http://lepensemoi.free.fr/index.php/2008/04/22/redimensionneur-dimages" rel=bookmark&gt;Batch image resizer &lt;/A&gt;&lt;/DIV&gt;&lt;/DIV&gt;
&lt;DIV id=post-1 class="post-1 post hentry category-tech tag-dot-net tag-fsharp tag-image tag-programming"&gt;&lt;A title="Permanent Link to Tries and Anagrams with F#" href="http://lepensemoi.free.fr/index.php/2009/10/15/trie-and-anagrams-with-f" rel=bookmark&gt;Tries and Anagrams with F#&amp;nbsp;&lt;/A&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;/BLOCKQUOTE&gt;&lt;/SPAN&gt;&lt;/EM&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919269" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item><item><title>F# 1.9.7 Language Specification Now Available</title><link>http://blogs.msdn.com/dsyme/archive/2009/11/04/f-1-9-7-language-specification-now-available.aspx</link><pubDate>Wed, 04 Nov 2009 17:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9917436</guid><dc:creator>dsyme</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9917436.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9917436</wfw:commentRss><description>&lt;P&gt;The F# 1.9.7 Language Specification is now available, in &lt;A href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.pdf" mce_href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.pdf"&gt;PDF&lt;/A&gt; and &lt;A href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html" mce_href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/manual/spec.html"&gt;HTML&lt;/A&gt;, matching the recent release of &lt;A href="http://blogs.msdn.com/dsyme/archive/2009/10/19/visual-studio-2010-beta2-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/10/19/visual-studio-2010-beta2-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx"&gt;F# in Visual Studio 2010 Beta2, with matching&amp;nbsp;CTP udpate for Mono and Visual Studio 2008&lt;/A&gt;.&amp;nbsp;The latest language specification can also always be found via &lt;A href="http://www.fsharp.net/"&gt;www.fsharp.net&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Many thanks to all those who sent so much helpful feedback on the specification during Beta1. And for those using 1.9.7 already, thanks for your patience in the last couple of weeks - it took us a little longer to get this out the door than we had planned, since a development deadline for Visual Studio 2010 intervened. &lt;/P&gt;
&lt;P&gt;We plan on making a second update to the 1.9.7 spec to polish some areas of the text in the next few weeks.&lt;/P&gt;
&lt;P&gt;thanks,&lt;/P&gt;
&lt;P&gt;don&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9917436" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Design+Notes/default.aspx">F# Design Notes</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category></item><item><title>F# in Visual Studio 2010 Beta2 is now available ( plus matching F# CTP Update for VS2008)</title><link>http://blogs.msdn.com/dsyme/archive/2009/10/19/visual-studio-2010-beta2-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx</link><pubDate>Mon, 19 Oct 2009 21:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909443</guid><dc:creator>dsyme</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9909443.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9909443</wfw:commentRss><description>&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;The latest release of F# is now out! &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;This is included in &lt;A href="http://go.microsoft.com/fwlink/?LinkID=151797" mce_href="http://go.microsoft.com/fwlink/?LinkID=151797"&gt;&lt;FONT color=#0000ff&gt;Visual Studio 2010 Beta2&lt;/FONT&gt;&lt;/A&gt; , released today for MSDN Subscribers,&amp;nbsp;with the matching release of the &lt;A href="http://go.microsoft.com/fwlink/?LinkId=151924" mce_href="http://go.microsoft.com/fwlink/?LinkId=151924"&gt;&lt;FONT color=#0000ff&gt;F# CTP for Visual Studio 2008&lt;/FONT&gt;&lt;/A&gt;, and a&amp;nbsp;&lt;A href="http://go.microsoft.com/fwlink/?LinkId=151924" mce_href="http://go.microsoft.com/fwlink/?LinkId=151924"&gt;&lt;FONT color=#0000ff&gt;compiler ZIP for Mono&lt;/FONT&gt;&lt;/A&gt;.&amp;nbsp;The &lt;A href="http://blogs.msdn.com/dsyme/archive/2009/10/19/release-notes-for-the-f-october-2009-release.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/10/19/release-notes-for-the-f-october-2009-release.aspx"&gt;detailed release notes are here&lt;/A&gt;. (Note: general download availability of Visual Studio 2010 Beta2 will begin in the next few days.)&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;This is an incremental release, supporting the &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://blogs.msdn.com/dsyme/archive/2008/12/10/fsharp-to-ship-as-part-of-visual-studio-2010.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2008/12/10/fsharp-to-ship-as-part-of-visual-studio-2010.aspx"&gt;&lt;SPAN style="mso-ansi-language: EN-GB" lang=EN-GB&gt;&lt;FONT color=#0000ff&gt;vision outlined by the F# team&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;, the &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://blogs.msdn.com/somasegar/archive/2009/10/09/f-in-vs2010.aspx" mce_href="http://blogs.msdn.com/somasegar/archive/2009/10/09/f-in-vs2010.aspx"&gt;&lt;SPAN style="mso-ansi-language: EN-GB" lang=EN-GB&gt;Microsoft Developer Division&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt; and &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/default.aspx" mce_href="http://research.microsoft.com/en-us/um/cambridge/projects/fsharp/default.aspx"&gt;&lt;SPAN style="mso-ansi-language: EN-GB" lang=EN-GB&gt;Microsoft Research&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt; of including F# as a supported language in Visual Studio. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;The focus of the release has been to address some design issues necessary to improve F# and put it on a long-term stable, reliable and supported basis. &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;With this release, we are enabling F# support for &lt;B&gt;multi-targeting with VS2010&lt;/B&gt;. This means that VS2010 projects can be targeted to produce binaries for any of .NET 2.0-4.0, for example if you are a library vendor building 2.0 dlls for use on 2.0-4.0, or working in an environment where .NET 2.0-3.5 development is the norm.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Additionally, we will be supporting&lt;B&gt; development of F# components targeting Silverlight&lt;/B&gt;, through the inclusion of a template for Silverlight library components. In line with the philosophy we outlined in the &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://blogs.msdn.com/dsyme/archive/2009/05/20/visual-studio-2010-beta1-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/05/20/visual-studio-2010-beta1-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx"&gt;&lt;SPAN style="mso-ansi-language: EN-GB" lang=EN-GB&gt;&lt;FONT color=#0000ff&gt;previous release of F#&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;, we expect the focus of F# in this domain to be components that handle the algorithmic and communication patterns common in client-side programming, particularly in enterprise scenarios.&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;We have also taken crucial steps towards our goal of ensuring &lt;B&gt;binary compatibility for components across .NET 2.0-4.0&lt;/B&gt;. For example, in previous releases different copies of the F# Power Pack were required for .NET 2.0-3.5 and 4.0. However, in this release we have one version of the Power Pack which can be used on both .NET 2.0-4.0 (installed via the CTP MSI or ZIP). If you are authoring F# binary components, you can now build binary compatible components in a similar way (note: some important Beta2 caveats are in the &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://blogs.msdn.com/dsyme/archive/2009/10/19/release-notes-for-the-f-october-2009-release.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/10/19/release-notes-for-the-f-october-2009-release.aspx"&gt;&lt;SPAN style="mso-ansi-language: EN-GB" lang=EN-GB&gt;&lt;FONT color=#0000ff&gt;release notes&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;). As we have discussed with the F# community, full ongoing binary compatibility is expected starting with the version of F# that comes with the Visual Studio 2010 RTM release.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;At the source level, we are now aiming for &lt;B&gt;no more changes to FSharp.Core.dll &lt;/B&gt;before the Visual Studio 2010 RTM release, apart from removing deprecated functionality. Existing F# users should pay careful attention to deprecation warnings since we will be removing deprecated functionality with the version of F# that will come with the Visual Studio 2010 RTM release. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;There are also some &lt;B&gt;simplifications to the F# language&lt;/B&gt;. For example, the OverloadID attribute is no longer needed when defining method overloads, we have added support for placing definitions in the global namespace and simplified conversion operators such as int32. Some &lt;B&gt;important restrictions have been lifted&lt;/B&gt; with regard to object oriented programming, and discriminated unions now have a &lt;B&gt;cleaner code generation pattern&lt;/B&gt; when used from other .NET languages. We’ve also made F# programming safer by adding a new feature called &lt;B&gt;equality&lt;/B&gt; &lt;B&gt;and comparison constraints&lt;/B&gt; used to ensure that F# types such as Map and Set are only used with types supporting the necessary operations. This is documented further in the F# release notes, and an update to the F# language specification will follow in the next week.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;This release also includes final, relatively modest improvements to the F# Core Library. These include &lt;B&gt;simplifications to F# asynchronous programming&lt;/B&gt;. For example, using asynchronous programming with WPF, Silverlight and ASP.NET components is now even easier, as described in the release notes. We have included the &lt;B&gt;array2D operator&lt;/B&gt; for creating 2D arrays. We’ve also addressed version-stable serialization of Map and Set, and aligned F# lazy values and cancellation with the designs of .NET 4.0. F# first class events now support the IObservable interface (new in .NET 4.0, also supported by F# 2.0, and also used by the &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;&lt;A href="http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/" mce_href="http://channel9.msdn.com/shows/Going+Deep/Expert-to-Expert-Brian-Beckman-and-Erik-Meijer-Inside-the-NET-Reactive-Framework-Rx/"&gt;&lt;SPAN style="mso-ansi-language: EN-GB" lang=EN-GB&gt;&lt;FONT color=#0000ff&gt;Reactive Framework&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;). The F# library also includes a modest library of &lt;B&gt;Observable operators&lt;/B&gt;, following the pattern of the Event operators already present in F#. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# now supports &lt;B&gt;reusable script components&lt;/B&gt; through the support of #load on .fsx components. By taking the closure of script references, common code can now by factored into reusable .fsx components. These components can be executed with F# Interactive, or compiled with the command line F# compiler.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;For F# in Visual Studio, we have addressed a multitude of issues, including &lt;B&gt;F1 support&lt;/B&gt;, improvements for the &lt;B&gt;Error List&lt;/B&gt;, issues in the Project System and better &lt;B style="mso-bidi-font-weight: normal"&gt;debugger display&lt;/B&gt; of unions and other F# types. &lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;For F# documentation, the F# Core Library docs have been integrated into MSDN.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Many thanks to everyone in the F# community for so much great feedback and encouragement during the last few months. The F# core team have worked hard to ensure a good release, and as always we’re very keen to hear your continued feedback. Please report any issues or problems you spot as soon as possible, to ensure we can act on it in time for Visual Studio 2010 RTM! (really, I mean that – &lt;I style="mso-bidi-font-style: normal"&gt;try it now, and please send us feedback&lt;/I&gt;!)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Don, for the F# team!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;A href="http://blogs.msdn.com/dsyme/archive/2009/10/19/release-notes-for-the-f-october-2009-release.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/10/19/release-notes-for-the-f-october-2009-release.aspx"&gt;Release notes&lt;o:p&gt;&lt;/o:p&gt;&lt;/A&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909443" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Design+Notes/default.aspx">F# Design Notes</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item><item><title>Release Notes for the F# October 2009 release </title><link>http://blogs.msdn.com/dsyme/archive/2009/10/19/release-notes-for-the-f-october-2009-release.aspx</link><pubDate>Mon, 19 Oct 2009 08:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909428</guid><dc:creator>dsyme</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9909428.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9909428</wfw:commentRss><description>&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 2" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 18pt" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 3" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 13.5pt" lang=EN-US&gt;(These notes apply to the &lt;A href="http://blogs.msdn.com/dsyme/archive/2009/10/19/visual-studio-2010-beta2-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/10/19/visual-studio-2010-beta2-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx"&gt;F# October 2009 CTP update and Visual Studio 2010 Beta2&lt;/A&gt;)&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 3" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 13.5pt" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-outline-level: 3" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 13.5pt" lang=EN-US&gt;Summary&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Release&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# in Visual Studio2010 Beta2 can build applications for .NET 2.0/3.0/3.5/4.0 and Silverlight 2/3.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Updated F# CTP for Visual Studio 2008 &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# PowerPack available as part of the CTP Update, and can be used with either CTP Update of VS2010 Beta2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# Language &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;OverloadID no longer required for defining overridden methods&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Require module/namespace at top of files&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;‘comparison’ and ‘equality’ constraints&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Core conversion operators use .NET standard op_Implicit/op_Explicit instead or ToInt32, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Support for global namespace qualification, “global.A.B.C” and “namespace global” &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;More flexibility in defining yield! and return! in computation expressions using YieldFrom and ReturnFrom&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Extension methods can participate in overload resolution&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Support for volatile fields using [&amp;lt;Volatile&amp;gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Support for letting F# types allow “null” using [&amp;lt;AllowNullLiteral&amp;gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Interface implementations can now be inherited&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Private type abbreviations (type private X = int)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;More flexibility for list literals and subtyping&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3 face=Calibri&gt;Recursive type inference improvement&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# Compiler&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;HTML doc generation moved from compiler to PowerPack&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Discriminated Union code generation provides simpler .NET view&lt;BR&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# Core Libraries&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Complete the under_score -&amp;gt; camelCase name standardization, of_list -&amp;gt; ofList&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast" lang=EN-US&gt;Async API Additions for Web Requests&lt;/SPAN&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast" lang=EN-US&gt;Async API Additions &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;for Reactive Applications&lt;/SPAN&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Array2D enables easily creating 2D arrays&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Observable module&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Version-stable serialization of Map and Set&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;[.NET 4.0] Lazy, CancellationToken, BigInteger in .NET4.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;CompiledName used to ensure .NET view is C#/VB friendly&lt;BR&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Visual Studio &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Multitargeting for VS2010: 2.0-4.0 + Silverlight&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Error list improvements&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Much improved debug display of unions and other F# types.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F1 support &lt;BR&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# Interactive&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;#load .fsx&lt;BR&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;F# PowerPack&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Async additions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;FsHtmlDoc.exe&lt;BR&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 36.0pt; mso-list: l1 level1 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Miscellaneous&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;UL type=circle&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Deletion of features deprecated in previous F# releases &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; tab-stops: list 72.0pt; mso-list: l1 level2 lfo1" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Plus many minor fixes and improvements&lt;BR style="mso-special-character: line-break"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;H1 style="MARGIN: 24pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT color=#365f91 size=5&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H1&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;F# Language &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;H3 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT size=3&gt;OverloadID no longer required for defining overridden methods&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Overloaded methods can now be defined without the need for the OverloadID attribute.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; Foo() =&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.CountChars(s : string ) = s.Length&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.CountChars(c : char) = 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT size=3&gt;Require module/namespace at top of files&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;All .fs files, except the last file in an application project, must begin with either a module or namespace declaration.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Previously files were put in a default module named after the file.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Files can be structured to define an F# module:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;module&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; Widgets&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; T() = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.X = 12&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; x = 12&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Or a namespace:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; Widgets&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; T() = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.X = 12&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Nested modules and namespace may be defined as before. &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-bidi-font-size: 12.0pt" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Note: Code of the form &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; Widgets&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;module&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; Module1&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;…&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-bidi-font-size: 12.0pt" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;should be rewritten as&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; COLOR: blue; FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;module&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&amp;nbsp;Widgets.Module1&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;…&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-STYLE: normal; FONT-FAMILY: 'Times New Roman','serif'"&gt;&lt;FONT color=#4f81bd&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN lang=EN-US&gt;‘comparison’ and ‘equality’ constraints&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Two new F#-specific&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;constraints&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;are added:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;ty :&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt; &lt;B style="mso-bidi-font-weight: normal"&gt;comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;ty :&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt; &lt;B style="mso-bidi-font-weight: normal"&gt;equality&lt;/B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoListParagraph&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Note: Equality includes "hashing"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;A type satisfies &lt;B style="mso-bidi-font-weight: normal"&gt;ty : equality&lt;/B&gt; under these conditions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 130%; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 6pt 36pt; mso-list: l0 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;if the type has dependencies T1, ..., TN then each of these must satisfy &lt;B style="mso-bidi-font-weight: normal"&gt;equality; &lt;/B&gt;AND&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 130%; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 6pt 36pt; mso-list: l0 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;the type doesn't have the NoEquality attribute; AND&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 130%; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 6pt 36pt; mso-list: l0 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;the type is not inferred to be NoEquality (for record, union and struct types)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;A type satisfies &lt;B style="mso-bidi-font-weight: normal"&gt;ty&lt;/B&gt; &lt;B style="mso-bidi-font-weight: normal"&gt;:&lt;/B&gt; &lt;B style="mso-bidi-font-weight: normal"&gt;comparison&lt;/B&gt; under these conditions&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 130%; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 6pt 36pt; mso-list: l0 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;if the type has dependencies T1, ..., TN then each of these must satisfy &lt;B style="mso-bidi-font-weight: normal"&gt;comparison; &lt;/B&gt;AND&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 130%; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 6pt 36pt; mso-list: l0 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;the type doesn't have the NoComparison attribute; AND&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 130%; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 6pt 36pt; mso-list: l0 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;the type implements IComparable, or the type is an array/IntPtr/UIntPtr; AND&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: 130%; TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 6pt 36pt; mso-list: l0 level1 lfo2; mso-add-space: auto" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings; mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT size=3&gt;Ø&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;the type is not inferred to be NoComparison (for record, union and struct types)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-fareast-language: EN-GB" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;One ramification of this is that most .NET types satisfy &lt;B style="mso-bidi-font-weight: normal"&gt;equality&lt;/B&gt;, even if this defaults to reference equality.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=3 face=Calibri&gt;These constraints are used on some common parts of the F# library:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; max&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;: 'T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; min&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;: 'T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; sort&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;: 'T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ‘T[] &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; sortInPlace: 'T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; unit&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; maxBy&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;: ('T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'Key) &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ‘T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'Key : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; minBy&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;: ('T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'Key) &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ‘T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'Key : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; sortBy&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;: ('T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'Key) &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ‘T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ‘T[] &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'Key : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; sortInPlaceBy: ('T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'Key) &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ‘T[] &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; unit &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'Key : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; countBy &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;: ('T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'Key) &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; seq&amp;lt;'T&amp;gt; &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; seq&amp;lt;'Key*int&amp;gt; &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'Key : equality&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; distinct&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;: seq&amp;lt;'T&amp;gt; &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; seq&amp;lt;'T&amp;gt; &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : equality&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; distinctBy : ('T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'Key) &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; seq&amp;lt;'T&amp;gt; &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; seq&amp;lt;'T&amp;gt; &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'Key : equality&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; ( &amp;lt; ) &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; bool &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; ( &amp;gt; ) &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; bool &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; ( &amp;gt;= ) &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; bool &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; ( &amp;lt;= ) &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; bool &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; ( = ) &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; bool &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : equality&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; ( &amp;lt;&amp;gt; ) &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; bool &lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : equality&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; compare : 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; int &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; hash &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; int &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : equality&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; max &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;val&lt;/SPAN&gt; min &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;: 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; 'T&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=3 face=Calibri&gt;In some cases, code may need to be updated to take into account these constraints.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT size=3 face=Calibri&gt;F# types may indicate how they participate in generic comparison or equality using attributes NoEquality/Comparison, StructuralEquality/Comparison. These are used on some F# library types, for example:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 9pt; mso-bidi-font-size: 8.0pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[&amp;lt;NoEquality&amp;gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[&amp;lt;NoComparison&amp;gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;type&lt;/SPAN&gt; Async&amp;lt;'T&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=EN-US&gt;In some circumstances it is also useful to make equality and comparison of a collection type conditional on a type parameter having equality/comparison. This is done using the EqualityConditionalOn and ComparisonConditionalOn attributes:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;type&lt;/SPAN&gt; Set&amp;lt;[&amp;lt;ComparisonConditionalOn&amp;gt;] 'T&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;when&lt;/SPAN&gt; 'T : comparison&amp;gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN lang=EN-US&gt;These attributes are inferred for structural types:&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// inferred: [&amp;lt;EqualityConditionalOn&amp;gt;] for T1, T1&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// inferred: [&amp;lt;ComparisonConditionalOn&amp;gt;] for T1, T2&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;type&lt;/SPAN&gt; Choice&amp;lt;'T1,'T2&amp;gt; = &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;| Choice1Of2 &lt;SPAN style="COLOR: blue"&gt;of&lt;/SPAN&gt; 'T1&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;| Choice2Of2 &lt;SPAN style="COLOR: blue"&gt;of&lt;/SPAN&gt; 'T2&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN-US&gt;Two new functions are available to access an "Unchecked" implementation of equality and comparison that is equivalent to the regular equality and comparison implementations, as used in previous implementations of F#, but may be used with any types without constraint&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN-US&gt;
&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unchecked.compare&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Unchecked.equals&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN-US&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;&lt;SPAN lang=EN-US&gt;Further details of the equality/comparison constraint&amp;nbsp;feature will be contained in the updated F# specification, to be released after these notes are posted.&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT color=#4f81bd size=3 face=Cambria&gt;Core conversion operators use .NET standard op_Implicit/op_Explicit instead or ToInt32, etc.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;FONT size=3&gt;Overloaded conversion operators such as ‘int’, ‘char’ and ‘float’ which previously provided custom overloading via ToXXX conversion functions now use .NET standard op_Implicit/op_Explicit instead.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Any type defining an op_Implicit or op_Explicit returning the expected type can be used with these conversion operators.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; MyInt(x : int) = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.X = x&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;static&lt;/SPAN&gt; &lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; op_Explicit(myint : MyInt) = myint.X&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; myInt = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; MyInt(3)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: green; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;// The 'int' conversion function calls the op_Explicit method on MyInt&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; oldInt = int myInt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-STYLE: normal" lang=EN-US&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Support for global namespace qualification, “global.A.B.C” and “namespace global” &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Types can now be defined in the .NET “global” namespace using:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;namespace&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;global&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; T() = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.X = 12&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Additionally, in cases where partially-qualified names clash, name lookup can be qualified to the global namespace environment:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; line = &lt;SPAN style="COLOR: blue"&gt;global&lt;/SPAN&gt;.System.Console.ReadLine()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;More flexibility in defining yield! and return! in custom computation expressions &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;To support more flexible uses of computation expressions, the two computation expression forms yield! and return! are now de-sugared as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;yield!&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; expr&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;builder.YieldFrom expr&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;return!&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; expr&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;builder.ReturnFrom expr&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 12pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;Extension methods can participate in overload resolution&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Extension methods can be defined as overloads of existing methods.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These are given a lower priority in overload resolution.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;See the F# spec for full details.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'; FONT-SIZE: 10pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.String &lt;SPAN style="COLOR: blue"&gt;with&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.Split(seps : string) = &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;this.Split(&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[|seps|], &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;System.StringSplitOptions.RemoveEmptyEntries)&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; parts = &lt;SPAN style="COLOR: maroon"&gt;"a b c&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;d"&lt;/SPAN&gt;.Split(&lt;SPAN style="COLOR: maroon"&gt;" "&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;Support for letting F# types allow “null” using [&amp;lt;AllowNullLiteral&amp;gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Types defined in F# do not generally allow the use of the ‘null’ literal as a proper value.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;However, null values can be passed in for these types from non-F# .NET callers, and sometimes it is necessary to write F# types that naturally do support a null proper value.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; T1() = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.X = 12&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;[&amp;lt;AllowNullLiteral&amp;gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; T2() = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.X = 12&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&lt;FONT size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; t1 : T1 = &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt; &lt;SPAN style="COLOR: green"&gt;// Error &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; t2 : T2 = &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt; &lt;SPAN style="COLOR: green"&gt;// No error&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;FONT size=3&gt;Interface implementations can now be inherited&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;Interfaces implemented by inherited classes can be used to satisfy interface implementation requirements on a derived class. Code such as the following now compiles without the need to explicitly implement &lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin" lang=EN-US&gt;I1&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt; in&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 9.5pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin" lang=EN-US&gt; C2.&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; I1 = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;abstract&lt;/SPAN&gt; V1 : string &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; I2 = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;inherit&lt;/SPAN&gt; I1 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;FONT size=3&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;abstract&lt;/SPAN&gt; V2 : string &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; C1() = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;interface&lt;/SPAN&gt; I1 &lt;SPAN style="COLOR: blue"&gt;with&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.V1 = &lt;SPAN style="COLOR: maroon"&gt;"C1"&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; &lt;SPAN style="COLOR: blue"&gt;public&lt;/SPAN&gt; C2() = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;inherit&lt;/SPAN&gt; C1() &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;interface&lt;/SPAN&gt; I2 &lt;SPAN style="COLOR: blue"&gt;with&lt;/SPAN&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; this.V2 = &lt;SPAN style="COLOR: maroon"&gt;"C2"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT color=#4f81bd size=3 face=Cambria&gt;More flexibility for list literals and subtyping&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: windowtext; FONT-SIZE: 12pt; FONT-WEIGHT: normal; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'" lang=EN-US&gt;List and array literals may now be used to create collections from elements that are subtypes of the collection element type.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; myControls: (Control list) = [ &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; Button() ; &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; TextBox() ]&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 18pt; tab-stops: 18.0pt 66.0pt 114.0pt 162.0pt 210.0pt 258.0pt 306.0pt 354.0pt 402.0pt 450.0pt 498.0pt 546.0pt 594.0pt 642.0pt 690.0pt 738.0pt 786.0pt 834.0pt 882.0pt 930.0pt 978.0pt 1026.0pt 1074.0pt 1122.0pt 1170.0pt 1218.0pt 1266.0pt 1314.0pt 1362.0pt 1410.0pt 1458.0pt 1506.0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'MS Shell Dlg','sans-serif'; FONT-SIZE: 12pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;F# Compiler&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;H3 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT color=#4f81bd size=3 face=Cambria&gt;HTML doc generation moved from compiler to PowerPack&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The --generatehtml compiler option has been removed, and the functionality moved into a separate tool in the F# PowerPack (see below).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This enables decaoupling documentation generation from compilation, and more customization of doc generation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;F# Binary Compatibility 2.0-4.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri&gt;As we have discussed with the F# community, full ongoing binary compatibility is expected starting with the version of F# that comes with the Visual Studio 2010 RTM release.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri&gt;This release has taken crucial steps towards the F# team goal of ensuring binary compatibility for components across .NET 2.0-4.0. For example, in previous releases different copies of the F# Power Pack were required for .NET 2.0-3.5 and 4.0. However, in this release we have one version of the Power Pack which can be used on both .NET 2.0-4.0 (installed via the CTP MSI or ZIP). &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri&gt;If you are authoring F# binary components, you can now build binary compatible components in a similar way. There are some important caveats to this due to two missing type forwarders in FSharp.Core.dll, notably&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ansi-language: EN-GB; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;Ø&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri&gt;DLLs using Array2D.* or 2D arrays in public API surface area are not automatically binary compatible across 2.0/4.0. With care these DLLs can be made binary compatible across 2.0/4.0, and this has been done for the F# Power Pack, &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;but normally these APIs will not be binary compatible across 2.0/4.0 until Visual Studio 2010 RTM&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; mso-list: l0 level1 lfo1" class=MsoListParagraph&gt;&lt;SPAN style="FONT-FAMILY: Wingdings; mso-ansi-language: EN-GB; mso-bidi-font-family: Wingdings; mso-fareast-font-family: Wingdings"&gt;&lt;SPAN style="mso-list: Ignore"&gt;Ø&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri&gt;Likewise DLLs using F# lazy values (System.Lazy&amp;lt;_&amp;gt;) are not automatically binary compatible. With care, these DLLs can be made binary compatible across 2.0/4.0 by using a private copy of the F# lazy implementation from .NET 2.0, and this has been done for the F# Power Pack. However in the absence of special attention these APIs will not be binary compatible across 2.0/4.0 until Visual Studio 2010 RTM&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 18pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="mso-ansi-language: EN-GB"&gt;&lt;FONT face=Calibri&gt;Binary compatibility can be checked in part by running peverify for .NET 2.0 and .NET 4.0 after installing Visual Studio 2010, a version of Visual Studio 2008 and the F# CTP.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT color=#4f81bd size=4&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;F# Core Libraries&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;Async API Additions for Web Programming&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;The extension methods &lt;B style="mso-bidi-font-weight: normal"&gt;webClient.AsyncDownloadString&lt;/B&gt; and &lt;B style="mso-bidi-font-weight: normal"&gt;webRequest.AsyncGetResponse&lt;/B&gt; are now defined in FSharp.Core.dll, and accessed via&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 7pt; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;open&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; Microsoft.FSharp.Control.WebExtensions&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;For example:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;open&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.Windows.Forms&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;open&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.Net&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;open&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.IO&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;open&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; Microsoft.FSharp.Control.WebExtensions&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: green; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;/// Fetch the contents of a web page, asynchronously&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; httpAsync (url:string) = &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;async { &lt;SPAN style="COLOR: blue"&gt;let&lt;/SPAN&gt; req = WebRequest.Create(url)&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;let!&lt;/SPAN&gt; resp = req.AsyncGetResponse()&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: green"&gt;// the rest is a callback&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;use&lt;/SPAN&gt; stream = resp.GetResponseStream() &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;use&lt;/SPAN&gt; reader = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; StreamReader(stream) &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return&lt;/SPAN&gt; reader.ReadToEnd()&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;Async API Additions &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;for WinForms, WPF, Silverlight &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;and ASP.NET applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;The Async API has a number of new additions and design extensions to better enable writing “single-primary-thread-of-control” reactive applications using F# asyncs. This is a commonly used idiom for Windows Forms, WPF, Silverlight&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;and ASP.NET programming.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;These applications are I/O parallel, but only use CPU parallelism in constrained ways. In this kind of application, CPU processing is done on a single thread of control, but multiple I/O requests may be overlapped.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;In .NET, these applications will typically have a non-null, dedicated value for &lt;B style="mso-bidi-font-weight: normal"&gt;System.Threading.SynchronizationContext.Current&lt;/B&gt; on the main “thread”.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H4 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; mso-bidi-font-size: 11.0pt" lang=EN-US&gt;&lt;EM&gt;&lt;FONT color=#4f81bd&gt;&lt;FONT face=Cambria&gt;Waiting for .NET Events&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;/H4&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;The method &lt;B style="mso-bidi-font-weight: normal"&gt;Async.AwaitEvent&lt;/B&gt; is now defined in FSharp.Core.dll. This method runs the continuation of the async the first time .NET event fires.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;open&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.Windows.Forms&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; form = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; Form(Visible=&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;,TopMost=&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;async { &lt;SPAN style="COLOR: blue"&gt;let!&lt;/SPAN&gt; firstClick = Async.AwaitEvent form.Click&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;form.Text &amp;lt;- &lt;SPAN style="COLOR: maroon"&gt;"I got clicked once!"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;let!&lt;/SPAN&gt; nextClick = Async.AwaitEvent form.Click&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;form.Text &amp;lt;- &lt;SPAN style="COLOR: maroon"&gt;"I got clicked twice!"&lt;/SPAN&gt; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;|&amp;gt; Async.StartImmediate&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; FONT-SIZE: 10pt; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-bidi-font-size: 11.0pt; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; FONT-SIZE: 10pt; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-bidi-font-size: 11.0pt; mso-themecolor: accent1" lang=EN-US&gt;Starting Asyncs on the Current Thread &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;The methods &lt;B style="mso-bidi-font-weight: normal"&gt;Async.StartImmediate&lt;/B&gt; and &lt;B style="mso-bidi-font-weight: normal"&gt;Async.StartWithContinuations&lt;/B&gt; are now defined in FSharp.Core.dll. These methods start the async immediately on the current thread, until the first point where the thread yields through an operation such as &lt;B style="mso-bidi-font-weight: normal"&gt;Async.AwaitEvent&lt;/B&gt; or an I/O operation.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;These methods are particularly useful for starting async operations on the GUI or ASP.NET thread.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;A use of StartImmediate is shown above.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;Automatic Return to Context&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/I&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;F# library async I/O and waiting primitives can now be used from GUI or ASP.NET threads in a simpler fashion. Conceptually, if you start an async I/O operation or an async wait operation on a GUI thread, then it will “complete” on the GUI or ASP.NET thread. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;If a primitive async operation is started on a thread where SynchronizationContext.Current&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;is set, then the continuation of such an async is posted using SynchronizationContext.Post. &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;In the following example the overall async is started on the GUI thread using StartImmediate. As the click happens and the asynchronous fetches of the web pages return, the overall async is in each instance continued on the GUI thread.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This means the GUI components can be safely updated from the async.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;open&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.Windows.Forms&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; form = &lt;SPAN style="COLOR: blue"&gt;new&lt;/SPAN&gt; Form(Visible=&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;,TopMost=&lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;async { &lt;SPAN style="COLOR: blue"&gt;let!&lt;/SPAN&gt; firstClick = Async.AwaitEvent form.Click&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;form.Text &amp;lt;- &lt;SPAN style="COLOR: maroon"&gt;"I got clicked!"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;let!&lt;/SPAN&gt; firstPage = httpAsync &lt;SPAN style="COLOR: maroon"&gt;"http://www.google.com"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;form.Text &amp;lt;- &lt;SPAN style="COLOR: maroon"&gt;"I got the first page!"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;let!&lt;/SPAN&gt; secondPage = httpAsync &lt;SPAN style="COLOR: maroon"&gt;"http://www.bing.com"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;form.Text &amp;lt;- &lt;SPAN style="COLOR: maroon"&gt;"I got the second page!"&lt;/SPAN&gt; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: 36pt; MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;|&amp;gt; Async.StartImmediate&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT face=Calibri&gt;F# asyncs built using the following API operations implement “automatic return to context”:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 20pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.Parallel&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.Sleep&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.AwaitEvent&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.AwaitIAsyncResult&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.AwaitTask&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.AwaitWaitHandle&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.FromBeginEnd&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.FromContinuations&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.Net.WebRequest &lt;SPAN style="COLOR: blue"&gt;with&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; AsyncGetResponse() &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.Net.WebClient &lt;SPAN style="COLOR: blue"&gt;with&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; AsyncDownloadString() &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;type&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; System.IO.Stream &lt;SPAN style="COLOR: blue"&gt;with&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; AsyncRead() &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 72pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;member&lt;/SPAN&gt; AsyncWrite() &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;Async API Renamings&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;System.Threading.AsyncSleep &lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Async.Sleep&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;extension waitHandle.AsyncWaitOne &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Async.AwaitWaitHandle&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;extension waitHandle.AsyncWaitOne &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Async.AwaitWaitHandle&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.BuildPrimitive &lt;SPAN style="mso-tab-count: 3"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Async.FromBeginEnd&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.SwitchToGuiThread &lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Async.SwitchToContext&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Async.RunWithContinuations &lt;SPAN style="mso-tab-count: 2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; &lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Async.StartWithContinuations&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Lucida Console'; FONT-SIZE: 8pt; mso-no-proof: yes" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN lang=EN-US&gt;&lt;FONT color=#4f81bd size=3 face=Cambria&gt;Complete the under_score -&amp;gt; camelCase name standardization, of_list -&amp;gt; ofList&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H3&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The naming normalization across the F# core libraries is finalized in this release, with the following removals of underscores and abbreviations:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;to_list&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; toList&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;to_array&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; toArray&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;to_seq&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; toSeq&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;of_list&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ofList&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;of_array&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ofArray&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;of_seq&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ofSeq&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;of_nativeint &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; ofNativeInt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;to_nativeint &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; toNativeInt&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;hd&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; head&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;tl&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; tail&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;Observable module and F# events &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The IObservable and IObserver interfaces provide a general interface over observable data, which can be easily composed.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;These interfaces are provided in .NET4.0, and are available in F# for .NET2.0.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;1&lt;SUP&gt;st&lt;/SUP&gt; class events in F# now implement the IObservable interface, enabling them to interoperate with other IObservable programming models.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;A new Observable module in the F# library provides compositional functions for manipulating general Observable data:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.merge&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.map&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.filter&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.partition&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.split&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.choose&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.scan&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.add&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.subscribe&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Observable.pairwise&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;array2D enables easily creating 2D arrays&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;A new ‘array2D’ function converts data into 2d arrays:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9.5pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin" lang=EN-US&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;let&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt; matrix = array2D [[1;2;3]; &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[2;3;4];&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;[3;4;5]]&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;[.NET 4.0] Lazy, CancellationToken, BigInteger in .NET4.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;Some F# types have moved into mscorlib in .NET4.0, making it easier to reuse these types between F# and other .NET languages.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;On .NET2.0, these F# types have been moved to corresponding namespaces within FSharp.Core.dll.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The following important F# types have moved to System namespaces:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Lazy &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; System.Lazy&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Tuple &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; System.Tuple&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;BigInt &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; System.Numerics.BigInteger&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;AsyncGroup &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; System.Threading.CancellationTokenSource and System.Threading.CancellationToken&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;CompiledName used to ensure .NET view is C#/VB friendly&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The .NET-visible names of types and members in FSharp.Core.dll are modified to align with standard .NET naming conventions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This makes it easier to use FSharp.Core defined types from other .NET languages.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For example:&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;Seq.iteri &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; Microsoft.FSharp.Collections.SeqModule.IterateIndexed&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-size: 16.0pt; mso-no-proof: yes"&gt;failwith &lt;SPAN style="COLOR: blue"&gt;-&amp;gt;&lt;/SPAN&gt; Microsoft.FSharp.Core.Operators.FailWith&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;Visual Studio &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;[VS2010] Multitargeting support for 2.0-4.0 + Silverlight&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;With VS2010, F# users can target .NET 2.0, 3.0, 3.5, 3.5 Client, 4.0 and 4.0 Client.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;F# libraries can also be built targeting Silverlight 2 and 3.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;F# libraries built against .NET2.0 can also be used as part of F# applications targeting later versions of .NET.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;Error list improvements&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;The Visual Studio error list is populated with F# errors both during editing of F# files, and during building of F# projects.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This release ensures that errors are tracked between these two sources when they are available in both.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;F1 support &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;F1 contextual help support is available in the F# editor.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This will open documentation for the type or member reference at the cursor.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;In addition, in VS2010, F1 help on F# keywords or F# library functions will go to the new MSDN documentation on these subjects.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;F# Interactive&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;#load .fsx&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;When building complex F# scripts, it is sometimes necessary to split a script into multiple .fsx files.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;F# scripts now support the ability to load other F# scripts, enabling factoring of scripts into source components.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: 10pt 0cm 0pt"&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'" lang=EN-US&gt;&lt;FONT size=4&gt;&lt;FONT color=#4f81bd&gt;F# PowerPack&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;&lt;/SPAN&gt;&lt;/B&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Cambria','serif'; COLOR: #4f81bd; mso-bidi-font-family: 'Times New Roman'; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-theme-font: major-bidi; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1" lang=EN-US&gt;FsHtmlDoc.exe&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-SIZE: 12pt; mso-bidi-font-family: Calibri; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-bidi-theme-font: minor-latin" lang=EN-US&gt;&lt;FONT face=Calibri&gt;A new tool called fshtmldoc.exe is now available in the F# Power Pack. This replaces the HTML doc functionality in the F# compiler. The command line options are shown using “fshtmldoc.exe --help"&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Times New Roman','serif'; FONT-SIZE: 12pt" lang=EN-US&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt 36pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909428" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Design+Notes/default.aspx">F# Design Notes</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item><item><title>F# Tutorial Code and Slides (JAOO 2009 Edition)</title><link>http://blogs.msdn.com/dsyme/archive/2009/10/10/f-tutorial-code-and-slides-jaoo-2009-edition.aspx</link><pubDate>Sat, 10 Oct 2009 17:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9905768</guid><dc:creator>dsyme</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9905768.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9905768</wfw:commentRss><description>&lt;P&gt;One of the great pleasures of my job is to go to conferences like JAOO and present on F# and other topics. This year I presented both a tutorial and a lecture at &lt;A href="http://jaoo.dk/aarhus-2009/" mce_href="http://jaoo.dk/aarhus-2009/"&gt;JAOO 2009&lt;/A&gt;, and I've included the tutorial and lecture slides below! Thanks to everyone who came along - I really enjoyed giving this one!&lt;/P&gt;
&lt;P&gt;Some highlights of the code are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Foundational material on F# async programming, and samples including:&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Fetching web pages in parallel&lt;/LI&gt;
&lt;LI&gt;The Bing translator sample using async programming&lt;/LI&gt;
&lt;LI&gt;A Graphical, asynchronous twitter client in 50 lines&lt;/LI&gt;
&lt;LI&gt;A Twitter feed example that uses F# first class reactive event processing to process the stream of feeds&lt;/LI&gt;
&lt;LI&gt;An asynchronous web crawler&lt;/LI&gt;
&lt;LI&gt;Processing images in parallel, using a mixture of I/O and CPU parallelism&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;An updated version of the famous Interactive DirectX demo&lt;/LI&gt;
&lt;LI&gt;Lots of great micro samples on foundational topics such as &lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;object oriented programming&lt;/LI&gt;
&lt;LI&gt;language oriented programming&lt;/LI&gt;
&lt;LI&gt;function composition&lt;/LI&gt;
&lt;LI&gt;design patterns&lt;/LI&gt;
&lt;LI&gt;discriminated unions&lt;/LI&gt;
&lt;LI&gt;records&lt;/LI&gt;
&lt;LI&gt;units of measure &lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;P&gt;The tutorial slides include important new slides on asynchronous programming. Over the next few blog entries I'll be taking a closer look at some of the material, especially in the areas of parallel and asynchronous programming. &lt;/P&gt;
&lt;P&gt;I'd really appreciate your input on how we can make this tutorial even better. Giving an F# tutorial is enormously enjoyable and if you'd like to give a tutorial, please drop me a note (dsyme at microsoft dot com) and I'll send you the latest copy of the slides and code - we're already planning to add a few more , including a section on the standard F# "functional programming operators" such as List.map, List.fold etc.Send us your suggestions for further topics to cover!&lt;/P&gt;
&lt;P&gt;Some of this material comes from &lt;A href="http://blogs.msdn.com/chrsmith/default.aspx" mce_href="http://blogs.msdn.com/chrsmith/default.aspx"&gt;Chris Smith&lt;/A&gt;, &lt;A href="http://weblogs.asp.net/podwysocki/" mce_href="http://weblogs.asp.net/podwysocki/"&gt;Matthew Podwysocki&lt;/A&gt;, &lt;A href="http://blogs.msdn.com/lukeh/" mce_href="http://blogs.msdn.com/lukeh/"&gt;Luke Hoban&lt;/A&gt;, &lt;A href="http://lorgonblog.spaces.live.com/" mce_href="http://lorgonblog.spaces.live.com"&gt;Brian McNamara&lt;/A&gt; and James Margetson&amp;nbsp;from the F# core team at Microsoft. Some snippets of the async samples showing the use of the PeriodicTable web service were co-developed with Robert Pickering (thanks Robert!)&lt;/P&gt;
&lt;P mce_keep="true"&gt;Enjoy!&lt;/P&gt;
&lt;P mce_keep="true"&gt;Don&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9905768" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/dsyme/attachment/9905768.ashx" length="1259382" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Design+Notes/default.aspx">F# Design Notes</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item><item><title>F# Job: Credit Suisse GMAG seek Trader Tools Project Lead</title><link>http://blogs.msdn.com/dsyme/archive/2009/09/22/credit-suisse-gmag-seek-trader-tools-project-lead.aspx</link><pubDate>Tue, 22 Sep 2009 16:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9898018</guid><dc:creator>dsyme</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9898018.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9898018</wfw:commentRss><description>&lt;P&gt;Over the last few years the F# team at Microsoft have&amp;nbsp;been very glad to work&amp;nbsp;with the &lt;A href="https://www.credit-suisse.com/" mce_href="https://www.credit-suisse.com/"&gt;Credit Suisse&lt;/A&gt; GMAG group . GMAG (Global Modelling and Analytics)are successful adopters of F#,&amp;nbsp;as they reported on at &lt;A href="http://cufp.galois.com/2008/main.html" mce_href="http://cufp.galois.com/2008/main.html"&gt;CUFP 2008&lt;/A&gt;. This continues strongly&amp;nbsp;and the group continue to provide essential feedback on the design and implementation of the F# language and its related Visual Studio tools.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The group is now looking for an&amp;nbsp;outstanding project lead for a new initiative where they expect F# to play a significant role. A snippet of t&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt; mso-ansi-language: EN-GB; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-GB; mso-bidi-language: AR-SA"&gt;he job description is below, contact Howard Mansell (&lt;A href="mailto:howard.mansell@credit-suisse.com"&gt;howard.mansell@credit-suisse.com&lt;/A&gt;) for more details.&lt;/SPAN&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=CSBodytext&gt;&lt;B&gt;&lt;EM&gt;THE POSITION: Trader Tools Project Lead (London)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/EM&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=CSBodytext&gt;&lt;EM&gt;One of the core activities of GMAG is to deliver tools to sales &amp;amp; trading that allow them to analyse markets and portfolios, and price trades.&amp;nbsp; We employ a number of technologies and frameworks, developed in GMAG-AD, for this purpose.&amp;nbsp; Our trader tools are currently deployed with an Excel front-end, with some amount of calculation implemented in Excel.&amp;nbsp; We intend to transition the delivery of these tools to a non-Excel environment.&amp;nbsp; We are looking for an outstanding individual to lead this effort.&lt;/EM&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=CSBodytext&gt;&lt;o:p&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=CSBodytext&gt;&lt;EM&gt;Key requirements for the role are:&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1" class=CSBodytext&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Experience of leading teams of highly-skilled technical specialists, and a demonstrated ability to deliver outstanding solutions to difficult problems.&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1" class=CSBodytext&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Very strong understanding of commercial software development processes and distributed team development of complex code bases.&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1" class=CSBodytext&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Ability to communicate well and understand the requirements of modellers and traders.&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1" class=CSBodytext&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Expert-level hands-on knowledge of the Microsoft .NET framework.&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1" class=CSBodytext&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Knowledge of functional and object-oriented programming paradigms.&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1" class=CSBodytext&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Ideally the candidate will have experience with F#, WPF, COM, C++, C# and web development.&lt;/EM&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -18pt; MARGIN: 0cm 0cm 0pt 36pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1" class=CSBodytext&gt;&lt;EM&gt;&lt;SPAN style="FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;SPAN style="mso-list: Ignore"&gt;·&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Experience in the finance sector is highly desirable but not essential.&lt;/EM&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;Don&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9898018" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category></item><item><title>Keynote at EclipseCon Europe, 2009: Taking Functional Programming Into the Mainstream</title><link>http://blogs.msdn.com/dsyme/archive/2009/09/18/keynote-at-eclipsecon-europe-2009-taking-functional-programming-into-the-mainstream.aspx</link><pubDate>Fri, 18 Sep 2009 16:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9896790</guid><dc:creator>dsyme</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9896790.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9896790</wfw:commentRss><description>&lt;P&gt;Just to mention that I'll be giving a keynote lecture at the &lt;A href="http://www.eclipsecon.org/summiteurope2009/" mce_href="http://www.eclipsecon.org/summiteurope2009/"&gt;Eclipse Summit&lt;/A&gt; in Ludwigsburg, Germany&amp;nbsp;on Wed 28 Oct. 2009.&lt;/P&gt;
&lt;P&gt;I haven't been to EclipseCon before. am looking forward to learning a lot about the Eclipse community. In the past few years, my work has been&amp;nbsp;in the context of&amp;nbsp;Visual Studio, but I've definitely learned that there is much that the various IDE communities can share and learn from each other. &lt;/P&gt;
&lt;P&gt;If you're planning on attending, drop me a note or stop by after the talk.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9896790" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category></item><item><title>F# at JAOO 2009, Aarhus, 4-6 October</title><link>http://blogs.msdn.com/dsyme/archive/2009/09/18/f-at-jaoo-2009-aarhus-4-6-october.aspx</link><pubDate>Fri, 18 Sep 2009 16:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9896785</guid><dc:creator>dsyme</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9896785.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9896785</wfw:commentRss><description>&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I’m excited to be giving a tutorial, a presentation and a panel at JAOO 2009 in Aarhus in early October. I’ve had the good fortune to be involved with JAOO and QCon a few times over the last few years, and am honoured to be presenting in Aarhus, the home of it all.&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I’ve copied details below – hope to see you there! &lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;FONT size=3 face=Calibri&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: auto 0cm"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 18.0pt"&gt;Tutorial: "Getting Started With F#"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Time:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; Sunday, 4 Oct, &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;9:00 – 12:00 &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Abstract:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;F# is a succinct and expressive typed functional programming language for the .NET platform, and Microsoft will be supporting F# as a first class language in Visual Studio 2010. In this tutorial you'll get a taste or F# programming from the basics through to some parallel and asynchronous programming with F#. You'll learn how to get started with the functional, imperative and object-oriented programming in F#, how to use shaped functional data to reduce the amount of state in your application, and how to use units of measure to bring sanity and checking to your numerical code. You'll also get a taste for some parallel and asynchronous programming, and take a look at some more advanced techniques in reflection. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Target Audience&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;: Developers, architects and anyone interested in learning how to apply functional techniques in practice and have fun along the way &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: auto 0cm"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 18.0pt"&gt;Presentation: "An Introduction to F#"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Track:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; &lt;A href="http://jaoo.dk/aarhus-2009/tracks/show_track.jsp?trackOID=267"&gt;&lt;FONT color=#0000ff&gt;Programming Languages &lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Time:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; Monday, 5 Oct, 13:30 - 14:30 &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Abstract:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; F# is a succinct and expressive typed functional programming language for the .NET platform, and Microsoft will be supporting F# as a first class language in Visual Studio 2010. We'll take a look at what you need to know to start having fun with F#, and how to use it productively. We'll also look at some sample applications of F# and functional programming and cover aspects of parallel, reactive and asynchronous programming with F#.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Target Audience&lt;/SPAN&gt;&lt;/B&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;: Developers, architects and anyone interested in learning how to apply functional techniques in practice and have fun along the way&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;H2 style="MARGIN: auto 0cm"&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 12pt; mso-bidi-font-size: 18.0pt"&gt;Panel: "Concurrency Expert Panel"&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/H2&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Track:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; &lt;A href="http://jaoo.dk/aarhus-2009/tracks/show_track.jsp?trackOID=284"&gt;&lt;FONT color=#0000ff&gt;The Concurrency challenge &lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Time:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; Tuesday, 6 Oct, &lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;13:30 - 14:30 &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal&gt;&lt;STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Abstract:&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt; One theme of the panel is concurrent programming models. Specifically; classic locking, transactional memory and actors. And with concurrency we mean parallel systems (e.g. shared-memory multicore, cluster)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;The goal is performance &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;One trust domain &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Latencies are small and predicable &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;One failure =&amp;gt; kill the program is just about tolerable &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l0 level1 lfo1; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;One of the goals for the discussion would be to get a better understanding of strengths and weaknesses; advice and discussion about when to use which model. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;Another goal is: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL type=disc&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l1 level1 lfo2; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;for the audience to get to "pick the brains of the experts" &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l1 level1 lfo2; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;to get a good discussion going amongst the experts &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l1 level1 lfo2; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;to get concrete advice on choice of programming language (hence model) for certain problems. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI style="MARGIN: 0cm 0cm 0pt; tab-stops: list 36.0pt; mso-list: l1 level1 lfo2; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: 'Arial','sans-serif'; FONT-SIZE: 10pt"&gt;advice on solving common problems that appear when using a particular model &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9896785" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item><item><title>Visual Studio 2010 Beta1 with F# is now available, plus matching F# CTP Update for VS2008</title><link>http://blogs.msdn.com/dsyme/archive/2009/05/20/visual-studio-2010-beta1-with-f-is-now-available-plus-matching-f-ctp-update-for-vs2008.aspx</link><pubDate>Wed, 20 May 2009 20:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9632643</guid><dc:creator>dsyme</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9632643.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9632643</wfw:commentRss><description>&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;The F# team are thrilled to announce that &lt;/FONT&gt;&lt;A class="" href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" mce_href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;&lt;FONT size=2&gt;Visual Studio 2010 Beta1 is now available&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&amp;nbsp;, including the latest version of F#. Today we are also releasing a matching &lt;/FONT&gt;&lt;A class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7bb32f32-9fac-4f34-ad56-b0bda130cf00" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=7bb32f32-9fac-4f34-ad56-b0bda130cf00 "&gt;&lt;FONT size=2&gt;F# May 2009 CTP&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt; for use with Visual Studio 2008 (&lt;A class="" href="http://download.microsoft.com/download/F/7/4/F74A3170-261C-4E8F-B1A8-2E352C61A89B/InstallFSharp.msi" mce_href="http://download.microsoft.com/download/F/7/4/F74A3170-261C-4E8F-B1A8-2E352C61A89B/InstallFSharp.msi "&gt;MSI&lt;/A&gt;, &lt;A class="" href="http://download.microsoft.com/download/F/7/4/F74A3170-261C-4E8F-B1A8-2E352C61A89B/fsharp.zip" mce_href="http://download.microsoft.com/download/F/7/4/F74A3170-261C-4E8F-B1A8-2E352C61A89B/fsharp.zip "&gt;ZIP&lt;/A&gt;).&amp;nbsp;Further below is&amp;nbsp;a &lt;A class="" href="http://blogs.msdn.com/dsyme/attachment/9632643.ashx" mce_href="http://blogs.msdn.com/dsyme/attachment/9632643.ashx"&gt;screen shot&lt;/A&gt;, more &lt;A class="" href="http://blogs.msdn.com/jasonz/archive/2009/05/18/announcing-vs2010-net-framework-4-0-beta-1.aspx" mce_href="http://blogs.msdn.com/jasonz/archive/2009/05/18/announcing-vs2010-net-framework-4-0-beta-1.aspx"&gt;here&lt;/A&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;If you’re new to F#, consider watching the &lt;/FONT&gt;&lt;A href="http://channel9.msdn.com/pdc2008/TL11/" mce_href="http://channel9.msdn.com/pdc2008/TL11/"&gt;&lt;FONT color=#0000ff size=2&gt;PDC presentation on F# by Luca Bolognese&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;, and the live demo of F# and other new language technologies at JAOO by &lt;/FONT&gt;&lt;A href="http://jaoo.blip.tv/file/1317881/" mce_href="http://jaoo.blip.tv/file/1317881/"&gt;&lt;FONT color=#0000ff size=2&gt;Anders Hejlsberg, Where are Programming Languages Going&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;, or else download,&amp;nbsp;start playing and take the &lt;A class="" href="http://msdn.microsoft.com/en-us/library/dd867745.aspx" mce_href="http://msdn.microsoft.com/en-us/library/dd867745.aspx"&gt;MSDN walkthrough of F# in Visual Studio 2010&lt;/A&gt;.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;This release is a landmark in the process of making F# a &lt;B&gt;language officially supported by Microsoft&lt;/B&gt;, being the first release where &lt;B&gt;F# installs as part of Visual Studio 2010&lt;/B&gt;. Using Visual Studio 2010 you can build F# applications for &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/net/" mce_href="http://www.microsoft.com/net/"&gt;&lt;FONT size=2&gt;.NET 4.0&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; Beta1, which has been released today. Likewise, using the F# CTP Update for Visual Studio 2008, you can build F# applications for .NET 2.0/3.0 and 3.5. The F# language itself is the same in both releases, with some additional library functions (e.g. &lt;B&gt;Array.Parallel.map&lt;/B&gt;) available with .NET 4.0/Visual Studio 2010 Beta1 (see the &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and-visual-studio-2010-beta1-releases.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and-visual-studio-2010-beta1-releases.aspx"&gt;&lt;FONT color=#0000ff size=2&gt;detailed release notes&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;).&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;As with our previous CTP release, one team focus of the last 6 months has been on &lt;B&gt;refining the F# language&lt;/B&gt; and &lt;STRONG&gt;taking feedback from the wonderful and growing F# community&lt;/STRONG&gt;.&amp;nbsp;For example, we have now made the F# lightweight syntax option the default for the language (i.e. for .fs/.fsi/.fsx files). We have added support for custom numeric type literals, which allows F# to &lt;B&gt;interoperate nicely with the BigInteger type on .NET 4.0&lt;/B&gt;, and have improved aspects of .NET interoperability such as &lt;B&gt;smoother calling of .NET param array methods&lt;/B&gt;.&amp;nbsp;You can also use F#'s support for &lt;B&gt;units-of-measure&lt;/B&gt; with integer types, e.g. to qualify integer types by annotations such as &amp;lt;Pixels&amp;gt; or &amp;lt;Clicks&amp;gt;. Additionally, we have been focusing on the &lt;B&gt;performance of F# language constructs&lt;/B&gt; in this release. In particular, we have made &lt;B&gt;performance improvements to F# sequence expressions&lt;/B&gt;, using a state machine compilation for sequence expressions that provides substantial performance improvements for code that generates data using these constructs. Similarly, if you disassemble some F# code you will notice that &lt;B&gt;F# classes have compact representations&lt;/B&gt;, and that some other constructs such as F# members taking arguments in curried form are compiled more efficiently. Taken together our aim has been to ensure a predictability in the performance characteristics of related language constructs. More detail in the &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and-visual-studio-2010-beta1-releases.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and-visual-studio-2010-beta1-releases.aspx"&gt;&lt;FONT color=#0000ff size=2&gt;detailed release notes&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;.&lt;B&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;One area we have done considerable work is the &lt;B&gt;F# library&lt;/B&gt;, and existing users will notice this when they move their code to this release. The consistent feedback we've had is that the F# library support must be &lt;B&gt;consistent&lt;/B&gt; , &lt;B&gt;powerful&lt;/B&gt; and &lt;B&gt;simple&lt;/B&gt; to use. As a result, we have completed an end-to-end review of the library and made some revisions to ensure &lt;B&gt;standard naming conventions&lt;/B&gt; and &lt;B&gt;standard, simpler operator names&lt;/B&gt; . The library also now uses &lt;B&gt;uppercase type variable names&lt;/B&gt;. More details are available in the detailed release notes, including details of two small breaking changes and some simple ways to cope with these. The Visual Studio 2008 release also provides versions of FSharp.Core.dll to use when developing F# applications for Silverlight 2.0 and the .NET Compact Framework 2.0/3.5.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;This release also sees major improvements in &lt;B&gt;F# debugging&lt;/B&gt;. First, in Visual Studio 2010 F# benefits from amazing new technology such as &lt;U&gt;&lt;A href="http://www.infoq.com/news/2009/04/LangNET-Debugging" mce_href="http://www.infoq.com/news/2009/04/LangNET-Debugging"&gt;time-travel debugging&lt;/A&gt;&lt;/U&gt; (ok, it’s officially called &lt;U&gt;&lt;A href="http://www.infoq.com/news/2009/04/LangNET-Debugging" mce_href="http://www.infoq.com/news/2009/04/LangNET-Debugging"&gt;historical debugging&lt;/A&gt;,&lt;/U&gt; but I grew up in the &lt;/FONT&gt;&lt;A href="http://www.bbc.co.uk/doctorwho/classic/" mce_href="http://www.bbc.co.uk/doctorwho/classic/"&gt;&lt;FONT size=2&gt;eighties&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;). This a product-quality realization of a long term dream of many language implementations. Next, in both Visual Studio 2008 and Visual Studio 2010 you will see major &lt;B&gt;improvements in data visualization for F# language constructs&lt;/B&gt; such as records and discriminated unions and F# library types such as lists, maps and sets. &lt;B&gt;Breakpoint and stepping&lt;/B&gt; have also greatly improved, and in Visual Studio 2010 breakpoints can be more accurately positioned inside lambda functions. Some library support also aids in adhoc debugging, e.g. the printf format "%+A" can now be used to print the private, internals of and F# structured object (when running code as full-trust), and a width parameter can be specified to fit the formatted text within a visual display, e.g. "%+128A".&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;We have not neglected the &lt;B&gt;F# Language Service and F# Project System&lt;/B&gt;. For example, when you build from Visual Studio you will notice that the error list is now populated with errors from the build process. We have also made many performance and reactivity improvements to the F# language service, eliminating points where the Visual Studio user interface became less reactive due to background computations and increasing the number of cases where intellisense is made available. There are also nice additional touches for &lt;B&gt;scripting with F#&lt;/B&gt;, such as hovering over a #r declaration now reveals the exact resolution of an assembly reference.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;Next, we now have preliminary &lt;B&gt;documentation for the F# language&lt;/B&gt; on the MSDN website (yippee!). These are preliminary, and yes there are glitches, so please have patience and send us your feedback &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="FONT-FAMILY: Wingdings; mso-ansi-language: EN-US; mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;&lt;SPAN style="mso-char-type: symbol; mso-symbol-font-family: Wingdings"&gt;J&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt; There is also a minor known bug in the walkthroughs where the code snippets all have extra leading whitespace.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Since F# is whitespace-significant by default, be sure to delete this leading whitespace when copying snippets.&amp;nbsp; These new docs are another good F# reference, as well as a resource for getting started with the language.&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;Finally, we have done considerable work towards &lt;B&gt;aligning F# with .NET 4.0 additions&lt;/B&gt; , with the aim of ensuring a &lt;B&gt;long, bright, compatible future for functional, reactive and parallel programming on the .NET platform&lt;/B&gt;. For example, you will see that when using .NET 4.0, F# record, tuple and union types now implement the .NET 4.0 standard types IStructuralEquatable and IStructuralComparable. Furthermore F# tuples are compiled using the standard .NET 4.0 type &lt;B&gt;System.Tuple&lt;/B&gt;. We've also added some lovely operators to the F# library for .NET 4.0, in the Microsoft.FSharp.Collections.Array.Parallel module, building on the .NET Parallel Extensions library. For example Array.Parallel.map can be used to perform a parallel map of a function over a large data array. Finally, you'll notice the addition of &lt;B&gt;Async.CreateAsTask&lt;/B&gt; and the extension property .&lt;B&gt;AwaitTask&lt;/B&gt; as ways to create and wait for .NET 4.0 tasks, meaning you can program .NET tasks directly using the F# asynchronous programming support!&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/SPAN&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="COLOR: #1f497d; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;IMG title="Screen Shot VS2010 Beta1" style="WIDTH: 769px; HEIGHT: 665px" height=665 alt="Screen Shot VS2010 Beta1" src="http://blogs.msdn.com/dsyme/attachment/9632643.ashx" width=769 align=top mce_src="http://blogs.msdn.com/dsyme/attachment/9632643.ashx"&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;A href="http://blogs.msdn.com/blogfiles/jasonz/WindowsLiveWriter/aeaf13805930_AB66/image_24.png" mce_href="http://blogs.msdn.com/blogfiles/jasonz/WindowsLiveWriter/aeaf13805930_AB66/image_24.png"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="FONT-SIZE: 12pt; mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;Details of all this and more is in the &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and-visual-studio-2010-beta1-releases.aspx" mce_href="http://blogs.msdn.com/dsyme/archive/2009/05/20/detailed-release-notes-for-the-f-may-2009-ctp-update-and-visual-studio-2010-beta1-releases.aspx"&gt;&lt;FONT color=#0000ff size=2&gt;detailed release notes&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;, and look for more blogging by the F# team and &lt;/FONT&gt;&lt;A href="http://cs.hubfs.net/forums" mce_href="http://cs.hubfs.net/forums"&gt;&lt;FONT color=#0000ff size=2&gt;community&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt; about all this and more. As always we are very glad to hear your feedback on all aspects of F#, and the above updates especially. We trust you enjoy your F# programming!&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;o:p&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class='MsoNormal"'&gt;&lt;SPAN lang=EN-US style="mso-ansi-language: EN-US"&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;Don Syme, for the F# team&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9632643" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/dsyme/attachment/9632643.ashx" length="74959" type="image/x-png" /><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Design+Notes/default.aspx">F# Design Notes</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item><item><title>Talks I'm Giving This Week: Göteborg, Aarhus, Copenhagen</title><link>http://blogs.msdn.com/dsyme/archive/2009/03/23/talks-i-m-giving-this-week-g-teborg-aarhus-copenhagen.aspx</link><pubDate>Mon, 23 Mar 2009 18:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9501587</guid><dc:creator>dsyme</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9501587.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9501587</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;I’ve a busy week ahead!&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;FONT face=Calibri size=3&gt;Tuesday (&lt;B style="mso-bidi-font-weight: normal"&gt;tomorrow&lt;/B&gt;!), 10am: Informal talk at &lt;/FONT&gt;&lt;A href="http://www.chalmers.se/"&gt;&lt;FONT face=Calibri size=3&gt;Chalmers University&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;, Göteborg: &lt;I style="mso-bidi-font-style: normal"&gt;F# in Visual Studio 2010&lt;/I&gt;, courtesy of John Hughes&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;FONT face=Calibri size=3&gt;Tuesday (&lt;B style="mso-bidi-font-weight: normal"&gt;tomorrow&lt;/B&gt;!), 1pm: &lt;/FONT&gt;&lt;A href="http://www.scandevconf.se/"&gt;&lt;FONT face=Calibri size=3&gt;SDC 2009&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;, Scandinavian Developers Conference, Göteborg: &lt;I style="mso-bidi-font-style: normal"&gt;Functional and Parallel Programming with F#&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt; tab-stops: 587.25pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;FONT face=Calibri size=3&gt;Wednesday, 12noon-2pm: &lt;/FONT&gt;&lt;A href="http://www.daimi.au.dk/news/upcoming-events/archive/2009/march/25/talk-don-syme-on-f/"&gt;&lt;FONT face=Calibri size=3&gt;Aarhus University&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;: &lt;I style="mso-bidi-font-style: normal"&gt;Why is Microsoft Investing in Functional Programming?&lt;/I&gt; And &lt;I style="mso-bidi-font-style: normal"&gt;A Look at Some Technical Aspects of F#&lt;/I&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;FONT face=Calibri size=3&gt;Thursday, 10am: &lt;/FONT&gt;&lt;A href="http://www.itu.dk/research/funtechs/coplas/2009-03-26.html"&gt;&lt;FONT face=Calibri size=3&gt;Copenhagen University&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;: likewise&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt 36pt"&gt;&lt;FONT face=Calibri size=3&gt;Thursday, 3pm-5pm: &lt;/FONT&gt;&lt;A href="http://www.microsoft.com/danmark/mdcc/news/exclusive_techtalk.mspx"&gt;&lt;FONT face=Calibri color=#0000ff size=3&gt;Microsoft Copenhagen Development Center&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;: open talk on &lt;B style="mso-bidi-font-weight: normal"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;F# for Developers&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;The last will be recorded! &lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;If you’re in the area and can make it to a talk, then do introduce yourself. Hope to see you there!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;Kind regards&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;don&lt;o:p&gt;&lt;/o:p&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9501587" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category></item><item><title>Specify your C# and F# code using NaturalSpec, from the Dynamics NAV team</title><link>http://blogs.msdn.com/dsyme/archive/2009/02/27/specify-your-c-and-f-code-using-naturalspec-from-the-microsoft-dynamics-team.aspx</link><pubDate>Fri, 27 Feb 2009 19:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9449043</guid><dc:creator>dsyme</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9449043.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9449043</wfw:commentRss><description>&lt;P&gt;Some&amp;nbsp;members of the &lt;A class="" href="http://www.microsoft.com/dynamics/nav/default.mspx" mce_href="http://www.microsoft.com/dynamics/nav/default.mspx"&gt;Dynamics NAV&lt;/A&gt; team have announced &lt;A class="" href="http://www.navision-blog.de/2009/02/23/introducing-naturalspec-a-dsl-for-testing-part-i/" mce_href="http://www.navision-blog.de/2009/02/23/introducing-naturalspec-a-dsl-for-testing-part-i/"&gt;NaturalSpec&lt;/A&gt;, a DSL/language/tool/methodology you can use to specify and test .NET code, e.g. code written in C# or F#. The tool is implemented in F#, and looks like a great addition to the .NET ecosystem.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;EM&gt;The idea of &lt;/EM&gt;&lt;A href="http://code.google.com/p/natural/"&gt;&lt;FONT color=#2b6688&gt;&lt;EM&gt;NaturalSpec&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt; is to give domain experts the possibility to express their scenarios directly in compilable Unit Test scenarios by using a &lt;/EM&gt;&lt;A href="http://en.wikipedia.org/wiki/Domain_Specific_Language"&gt;&lt;FONT color=#2b6688&gt;&lt;EM&gt;Domain-specific language&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt; (DSL) for Unit Tests. NaturalSpec is completely written in &lt;/EM&gt;&lt;A href="http://en.wikipedia.org/wiki/F_Sharp_programming_language"&gt;&lt;FONT color=#2b6688&gt;&lt;EM&gt;F#&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt; – but you don’t have to learn F# to use it. You don’t even have to learn programming at all.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Of course you can use NaturalSpec to specify C# objects. I see my post "&lt;/EM&gt;&lt;A href="http://www.navision-blog.de/2009/02/23/using-naturalspec-to-create-spec-for-c-projects/"&gt;&lt;FONT color=#2b6688&gt;&lt;EM&gt;Using NaturalSpec to create a spec for C# projects&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt;" for a small sample.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;You can download &lt;/EM&gt;&lt;A href="http://code.google.com/p/natural/"&gt;&lt;FONT color=#2b6688&gt;&lt;EM&gt;NaturalSpec at GoogleCode&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt; and follow the &lt;/EM&gt;&lt;A href="http://www.navision-blog.de/2009/02/23/getting-started-with-naturalspec/"&gt;&lt;FONT color=#2b6688&gt;&lt;EM&gt;“Getting started” tutorial&lt;/EM&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;EM&gt; in order to write your first automatically testable spec.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;I am very interested in your feedback. Do you like the syntax? What should I change? Do you consider using a spec tool like NaturalSpec?&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;&lt;/EM&gt;&amp;nbsp;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9449043" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category></item><item><title>F# Programming Contest, by Kean at AutoDesk</title><link>http://blogs.msdn.com/dsyme/archive/2009/01/11/f-programming-contest-by-kean-at-autodesk.aspx</link><pubDate>Sun, 11 Jan 2009 22:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9306215</guid><dc:creator>dsyme</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/dsyme/comments/9306215.aspx</comments><wfw:commentRss>http://blogs.msdn.com/dsyme/commentrss.aspx?PostID=9306215</wfw:commentRss><description>&lt;P&gt;Kean over at AutoDesk (think AutoCAD etc.) is &lt;A class="" href="http://through-the-interface.typepad.com/through_the_interface/2009/01/f-programming-contest.html" mce_href="http://through-the-interface.typepad.com/through_the_interface/2009/01/f-programming-contest.html"&gt;running an F# programming contest&lt;/A&gt;!&lt;/P&gt;
&lt;P&gt;I've included&amp;nbsp;his post below:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;H3 class=entry-header&gt;&lt;EM&gt;F# programming contest&lt;/EM&gt;&lt;/H3&gt;
&lt;DIV class=entry-content&gt;
&lt;DIV class=entry-body&gt;
&lt;P&gt;&lt;EM&gt;...&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;So to start 2009 with a bang (or a pop, at least) I'm going to run a programming contest. The basic idea is to generate some cool examples of using functional programming (more specifically F#) with design applications (more specifically those developed by Autodesk :-). See below for some ideas on what areas people might be interested in looking into.&lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/.a/6a00d83452464869e2010536bd5157970c-pi"&gt;&lt;EM&gt;&lt;IMG style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 10px 20px 10px 40px; BORDER-RIGHT-WIDTH: 0px" height=168 alt="Expert F#" src="http://through-the-interface.typepad.com/.a/6a00d83452464869e2010536bd5158970c-pi" width=125 align=right border=0&gt;&lt;/EM&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Up for grabs are three copies of &lt;/EM&gt;&lt;A href="http://research.microsoft.com/~dsyme/"&gt;&lt;EM&gt;Don Syme&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;'s book, &lt;/EM&gt;&lt;A href="http://www.expert-fsharp.com/"&gt;&lt;EM&gt;Expert F#&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;, which have been kindly donated by &lt;/EM&gt;&lt;A href="http://www.apress.com/"&gt;&lt;EM&gt;Apress&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;, its publisher. I've mentioned this excellent book in the past, when &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/10/more-interview.html"&gt;&lt;EM&gt;I introduced my interview with Don&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; (the interview itself is &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/10/an-interview--1.html"&gt;&lt;EM&gt;here&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;). With any luck I'll find a way to get Don to sign the books before sending them to the lucky winners.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;So, now for some ground-rules...&lt;/EM&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;To enter the contest you need to &lt;/EM&gt;&lt;A href="mailto:kean.walmsley@autodesk.com"&gt;&lt;EM&gt;email me&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; a source project which uses F# for a particular task within one or more of Autodesk's products. &lt;/EM&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;The project should be accompanied with a description of what it does and how to use it. Please provide sample models, if they're needed to make the code work. &lt;/EM&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;I do need to see the full source, as I can't assess the quality of the code otherwise.&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;EM&gt;There's no limit on the size, as long as I can get the code to work easily. &lt;/EM&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;F# code has the potential to be extremely succinct, so please don't assume that bigger means better. Code will be assessed for its elegance as well as what it does.&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;EM&gt;The code submitted must be considered non-confidential and license-free. &lt;/EM&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;Which means it can be published (with appropriate credit) via this blog and potentially used by people in commercial applications.&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;EM&gt;I will act as the sole judge, although I may include other people if assessing the use of APIs with which I'm unfamiliar. The judge's decision is final. &lt;/EM&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;I can feel the power coursing through my fingertips as I write this... :-)&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;EM&gt;Each of the best three entries will win a copy of "Expert F#". &lt;/EM&gt;
&lt;LI&gt;&lt;EM&gt;Absolutely anyone can enter, including Autodesk employees, their family members and pets. &lt;/EM&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;EM&gt;I'll be publishing the winners' names and probably some information provided by them, so please don't expect to remain completely anonymous if you enter the competition.&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;EM&gt;The closing date for the contest is &lt;STRONG&gt;February 28th, 2009&lt;/STRONG&gt;.&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;EM&gt;Here are some thoughts on areas that might prove interesting...&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Data-centric problems&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Functional programming is very good at managing (parsing, analysing, even creating) large sets of data. One previous, simple example was to gather and sort all the words found in an AutoCAD drawing. Here's &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2007/11/more-fun-with-f.html"&gt;&lt;EM&gt;the original post&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; showing this, but an update was provided in my &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/10/au-handouts-aut.html"&gt;&lt;EM&gt;F# AU&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/10/au-handouts-a-1.html"&gt;&lt;EM&gt;handouts&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Control flow-centric problems &lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;If you have tasks that can easily be parallelized - in that they can safely be run asynchronously and/or concurrently - then functional programming provides a clean way to capture and execute the logic behind them. An example being a simple application that went away and queried RSS feeds asynchronously, using the results to generate AutoCAD entities. Here are &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/01/turning-autocad.html"&gt;&lt;EM&gt;the original&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;&amp;nbsp;&lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/01/harnessing-f-as.html"&gt;&lt;EM&gt;posts&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; showing this, but an update was provided in my &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/10/au-handouts-aut.html"&gt;&lt;EM&gt;F# AU&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/10/au-handouts-a-1.html"&gt;&lt;EM&gt;handouts&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Domain Specific Languages (DSLs)&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;Implementing new, custom-purpose programming languages can be an efficient way to control the subset of language features used by a non-programmers to implement code. An example of this was the &lt;/EM&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2008/07/a-simple-3d-log.html"&gt;&lt;EM&gt;3D LOGO implementation inside AutoCAD&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt;.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;Units of measure&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;One F# language feature that I also see as being very relevant to our domain is the &lt;/EM&gt;&lt;A href="http://blogs.msdn.com/andrewkennedy/archive/2008/08/20/units-of-measure-in-f-part-one-introducing-units.aspx"&gt;&lt;EM&gt;units&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; &lt;/EM&gt;&lt;A href="http://blogs.msdn.com/andrewkennedy/archive/2008/09/02/units-of-measure-in-f-part-two-unit-conversions.aspx"&gt;&lt;EM&gt;of&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; &lt;/EM&gt;&lt;A href="http://blogs.msdn.com/andrewkennedy/archive/2008/09/04/units-of-measure-in-f-part-three-generic-units.aspx"&gt;&lt;EM&gt;measure&lt;/EM&gt;&lt;/A&gt;&lt;EM&gt; implementation. I haven't yet worked with this, myself, but I have certainly been meaning to.&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;I think that's everything... if I've missed something or you need clarification, please email me or post a comment and I'll respond. Hopefully some of you find this a fun challenge for the (often quite gloomy) start of the year.&lt;/EM&gt;&lt;/P&gt;&lt;/DIV&gt;
&lt;SCRIPT src="http://feeds.feedburner.com/~s/typepad/walmsleyk/through_the_interface?i=http%3A%2F%2Fthrough-the-interface.typepad.com%2Fthrough_the_interface%2F2009%2F01%2Ff-programming-contest.html" type=text/javascript&gt;&lt;/SCRIPT&gt;
&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9306215" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Announcements/default.aspx">F# Announcements</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Design+Notes/default.aspx">F# Design Notes</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Snippets/default.aspx">F# Snippets</category><category domain="http://blogs.msdn.com/dsyme/archive/tags/F_2300_+Concurrency/default.aspx">F# Concurrency</category></item></channel></rss>