Commits

ptrelford committed 9c1b5d5

Added WP7 projects (runs in emulator)

Comments (0)

Files changed (18)

PacMan.Wp7/PacMan.Wp7.App/App.xaml

+<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
+             x:Class="PacMan.App.App"
+             xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
+             xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone">
+    <Application.Resources>        
+    </Application.Resources>
+
+    <Application.ApplicationLifetimeObjects>
+        <shell:PhoneApplicationService 
+            Launching="Application_Launching" Closing="Application_Closing" 
+            Activated="Application_Activated" Deactivated="Application_Deactivated"/>
+    </Application.ApplicationLifetimeObjects>
+</Application>

PacMan.Wp7/PacMan.Wp7.App/App.xaml.cs

+using System;
+#if NETFX_CORE
+using Windows.ApplicationModel;
+using Windows.ApplicationModel.Activation;
+using Windows.UI.Xaml;
+using Windows.UI.Xaml.Controls;
+#else
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+#if WINDOWS_PHONE
+using System.Windows.Navigation;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Shell;
+#endif
+#endif
+
+namespace PacMan.App
+{
+#if NETFX_CORE
+    /// <summary>
+    /// Provides application-specific behavior to supplement the default Application class.
+    /// </summary>
+    sealed partial class App : Application
+    {
+        /// <summary>
+        /// Initializes the singleton application object.  This is the first line of authored code
+        /// executed, and as such is the logical equivalent of main() or WinMain().
+        /// </summary>
+        public App()
+        {
+            this.InitializeComponent();
+            this.Suspending += OnSuspending;
+        }
+
+        /// <summary>
+        /// Invoked when the application is launched normally by the end user.  Other entry points
+        /// will be used when the application is launched to open a specific file, to display
+        /// search results, and so forth.
+        /// </summary>
+        /// <param name="args">Details about the launch request and process.</param>
+        protected override void OnLaunched(LaunchActivatedEventArgs args)
+        {
+            // Do not repeat app initialization when already running, just ensure that
+            // the window is active
+            if (args.PreviousExecutionState == ApplicationExecutionState.Running)
+            {
+                Window.Current.Activate();
+                return;
+            }
+
+            if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
+            {
+                //TODO: Load state from previously suspended application
+            }
+
+            // Create a Frame to act navigation context and navigate to the first page
+            var rootFrame = new Frame();
+            if (!rootFrame.Navigate(typeof(PacMan.App.Metro.MainPage)))
+            {
+                throw new Exception("Failed to create initial page");
+            }
+
+            // Place the frame in the current Window and ensure that it is active
+            Window.Current.Content = rootFrame;
+            Window.Current.Activate();
+        }
+
+        /// <summary>
+        /// Invoked when application execution is being suspended.  Application state is saved
+        /// without knowing whether the application will be terminated or resumed with the contents
+        /// of memory still intact.
+        /// </summary>
+        /// <param name="sender">The source of the suspend request.</param>
+        /// <param name="e">Details about the suspend request.</param>
+        private void OnSuspending(object sender, SuspendingEventArgs e)
+        {
+            var deferral = e.SuspendingOperation.GetDeferral();
+            //TODO: Save application state and stop any background activity
+            deferral.Complete();
+        }
+    }
+#else
+#if WINDOWS_PHONE
+    public partial class App : Application
+    {
+        /// <summary>
+        /// Provides easy access to the root frame of the Phone Application.
+        /// </summary>
+        /// <returns>The root frame of the Phone Application.</returns>
+        public PhoneApplicationFrame RootFrame { get; private set; }
+
+        /// <summary>
+        /// Constructor for the Application object.
+        /// </summary>
+        public App()
+        {
+            // Global handler for uncaught exceptions. 
+            UnhandledException += Application_UnhandledException;
+
+            // Standard Silverlight initialization
+            InitializeComponent();
+
+            // Phone-specific initialization
+            InitializePhoneApplication();
+
+            // Show graphics profiling information while debugging.
+            if (System.Diagnostics.Debugger.IsAttached)
+            {
+                // Display the current frame rate counters.
+                Application.Current.Host.Settings.EnableFrameRateCounter = true;
+
+                // Show the areas of the app that are being redrawn in each frame.
+                //Application.Current.Host.Settings.EnableRedrawRegions = true;
+
+                // Enable non-production analysis visualization mode, 
+                // which shows areas of a page that are handed off to GPU with a colored overlay.
+                //Application.Current.Host.Settings.EnableCacheVisualization = true;
+
+                // Disable the application idle detection by setting the UserIdleDetectionMode property of the
+                // application's PhoneApplicationService object to Disabled.
+                // Caution:- Use this under debug mode only. Application that disables user idle detection will continue to run
+                // and consume battery power when the user is not using the phone.
+                PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;
+            }
+
+        }
+
+        // Code to execute when the application is launching (eg, from Start)
+        // This code will not execute when the application is reactivated
+        private void Application_Launching(object sender, LaunchingEventArgs e)
+        {
+        }
+
+        // Code to execute when the application is activated (brought to foreground)
+        // This code will not execute when the application is first launched
+        private void Application_Activated(object sender, ActivatedEventArgs e)
+        {
+        }
+
+        // Code to execute when the application is deactivated (sent to background)
+        // This code will not execute when the application is closing
+        private void Application_Deactivated(object sender, DeactivatedEventArgs e)
+        {
+        }
+
+        // Code to execute when the application is closing (eg, user hit Back)
+        // This code will not execute when the application is deactivated
+        private void Application_Closing(object sender, ClosingEventArgs e)
+        {
+        }
+
+        // Code to execute if a navigation fails
+        private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)
+        {
+            if (System.Diagnostics.Debugger.IsAttached)
+            {
+                // A navigation has failed; break into the debugger
+                System.Diagnostics.Debugger.Break();
+            }
+        }
+
+        // Code to execute on Unhandled Exceptions
+        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
+        {
+            if (System.Diagnostics.Debugger.IsAttached)
+            {
+                // An unhandled exception has occurred; break into the debugger
+                System.Diagnostics.Debugger.Break();
+            }
+        }
+
+        #region Phone application initialization
+
+        // Avoid double-initialization
+        private bool phoneApplicationInitialized = false;
+
+        // Do not add any additional code to this method
+        private void InitializePhoneApplication()
+        {
+            if (phoneApplicationInitialized)
+                return;
+
+            // Create the frame but don't set it as RootVisual yet; this allows the splash
+            // screen to remain active until the application is ready to render.
+            RootFrame = new PhoneApplicationFrame();
+            RootFrame.Navigated += CompleteInitializePhoneApplication;
+
+            // Handle navigation failures
+            RootFrame.NavigationFailed += RootFrame_NavigationFailed;
+
+            // Ensure we don't initialize again
+            phoneApplicationInitialized = true;
+        }
+
+        // Do not add any additional code to this method
+        private void CompleteInitializePhoneApplication(object sender, NavigationEventArgs e)
+        {
+            // Set the root visual to allow the application to render
+            if (RootVisual != RootFrame)
+                RootVisual = RootFrame;
+
+            // Remove this handler since it is no longer needed
+            RootFrame.Navigated -= CompleteInitializePhoneApplication;
+        }
+
+        #endregion
+    }
+#else
+    public partial class App : Application
+    {
+        public App()
+        {
+            this.Startup += this.Application_Startup;
+            this.Exit += this.Application_Exit;
+            this.UnhandledException += this.Application_UnhandledException;
+
+            InitializeComponent();
+        }
+
+        private void Application_Startup(object sender, StartupEventArgs e)
+        {
+            this.RootVisual = new MainControl();
+        }
+
+        private void Application_Exit(object sender, EventArgs e)
+        {
+
+        }
+
+        private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
+        {
+            // If the app is running outside of the debugger then report the exception using
+            // the browser's exception mechanism. On IE this will display it a yellow alert 
+            // icon in the status bar and Firefox will display a script error.
+            if (!System.Diagnostics.Debugger.IsAttached)
+            {
+
+                // NOTE: This will allow the application to continue running after an exception has been thrown
+                // but not handled. 
+                // For production applications this error handling should be replaced with something that will 
+                // report the error to the website and stop the application.
+                e.Handled = true;
+                Deployment.Current.Dispatcher.BeginInvoke(delegate { ReportErrorToDOM(e); });
+            }
+        }
+
+        private void ReportErrorToDOM(ApplicationUnhandledExceptionEventArgs e)
+        {
+            try
+            {
+                string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace;
+                errorMsg = errorMsg.Replace('"', '\'').Replace("\r\n", @"\n");
+
+                System.Windows.Browser.HtmlPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");");
+            }
+            catch (Exception)
+            {
+            }
+        }
+    }
+#endif
+#endif
+}

PacMan.Wp7/PacMan.Wp7.App/ApplicationIcon.png

Added
New image

PacMan.Wp7/PacMan.Wp7.App/Background.png

Added
New image

PacMan.Wp7/PacMan.Wp7.App/HashSet.cs

+using System.Collections.Generic;
+
+namespace PacMan.App
+{
+    public class HashSet<T>
+    {
+        private List<T> _values = new List<T>();
+
+        public void Clear()
+        {
+            _values.Clear();
+        }
+
+        public bool Contains(T value)
+        {
+            return _values.Contains(value);
+        }
+
+        public void Add(T value)
+        {
+            _values.Add(value);
+        }
+
+        public void Remove(T Value)
+        {
+            _values.Remove(Value);
+        }
+    }
+}

PacMan.Wp7/PacMan.Wp7.App/MainPhonePage.xaml

+<phone:PhoneApplicationPage 
+    x:Class="PacMan.App.MainPhonePage"
+    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
+    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
+    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
+    FontFamily="{StaticResource PhoneFontFamilyNormal}"
+    FontSize="{StaticResource PhoneFontSizeNormal}"
+    Foreground="{StaticResource PhoneForegroundBrush}"
+    SupportedOrientations="Portrait" Orientation="Portrait"
+    shell:SystemTray.IsVisible="True">
+
+    <!--LayoutRoot is the root grid where all page content is placed-->
+    <Grid x:Name="LayoutRoot" Background="Transparent">
+        <Grid.RowDefinitions>
+            <RowDefinition Height="Auto"/>
+            <RowDefinition Height="*"/>
+        </Grid.RowDefinitions>
+
+        <!--TitlePanel contains the name of the application and page title-->
+        <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
+            <TextBlock x:Name="ApplicationTitle" Text="PacMan" Style="{StaticResource PhoneTextNormalStyle}"/>
+            <TextBlock x:Name="PageTitle" Text="play" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
+        </StackPanel>
+
+        <!--ContentPanel - place additional content here-->
+        <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"></Grid>
+    </Grid>
+ 
+    <!--Sample code showing usage of ApplicationBar-->
+    <!--<phone:PhoneApplicationPage.ApplicationBar>
+        <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
+            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Button 1"/>
+            <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Button 2"/>
+            <shell:ApplicationBar.MenuItems>
+                <shell:ApplicationBarMenuItem Text="MenuItem 1"/>
+                <shell:ApplicationBarMenuItem Text="MenuItem 2"/>
+            </shell:ApplicationBar.MenuItems>
+        </shell:ApplicationBar>
+    </phone:PhoneApplicationPage.ApplicationBar>-->
+
+</phone:PhoneApplicationPage>

PacMan.Wp7/PacMan.Wp7.App/MainPhonePage.xaml.cs

+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+using Microsoft.Phone.Controls;
+
+namespace PacMan.App
+{
+    public partial class MainPhonePage : PhoneApplicationPage
+    {
+        // Constructor
+        public MainPhonePage()
+        {
+            InitializeComponent();
+            
+            var canvas = Main.CreateCanvas();
+            this.ContentPanel.Children.Add(canvas);
+            Main.StartGame(this, canvas);     
+        }
+    }
+}

PacMan.Wp7/PacMan.Wp7.App/PacMan.App.Wp7.csproj

+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>10.0.20506</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{A28C340D-21B6-4B1B-9B19-D1D5022B772D}</ProjectGuid>
+    <ProjectTypeGuids>{C089C8C0-30E0-4E22-80C0-CE093F111A43};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>PacMan.App</RootNamespace>
+    <AssemblyName>PacMan.App</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>
+    <TargetFrameworkProfile>WindowsPhone71</TargetFrameworkProfile>
+    <TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>
+    <SilverlightApplication>true</SilverlightApplication>
+    <SupportedCultures>
+    </SupportedCultures>
+    <XapOutputs>true</XapOutputs>
+    <GenerateSilverlightManifest>true</GenerateSilverlightManifest>
+    <XapFilename>PacMan.App.xap</XapFilename>
+    <SilverlightManifestTemplate>Properties\AppManifest.xml</SilverlightManifestTemplate>
+    <SilverlightAppEntry>PacMan.App.App</SilverlightAppEntry>
+    <ValidateXaml>true</ValidateXaml>
+    <ThrowErrorsInValidation>true</ThrowErrorsInValidation>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>Bin\Debug</OutputPath>
+    <DefineConstants>DEBUG;TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>Bin\Release</OutputPath>
+    <DefineConstants>TRACE;SILVERLIGHT;WINDOWS_PHONE</DefineConstants>
+    <NoStdLib>true</NoStdLib>
+    <NoConfig>true</NoConfig>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.Phone" />
+    <Reference Include="Microsoft.Phone.Interop" />
+    <Reference Include="System.Windows" />
+    <Reference Include="system" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Net" />
+    <Reference Include="System.Xml" />
+    <Reference Include="mscorlib.extensions" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="App.xaml.cs">
+      <DependentUpon>App.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="..\..\PacMan.Xaml\Bitmap.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Content.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Contents.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Input.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Keys.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Layer.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Main.cs" />
+    <Compile Include="MainPhonePage.xaml.cs">
+      <DependentUpon>MainPhonePage.xaml</DependentUpon>
+    </Compile>
+    <Compile Include="..\..\PacMan.Xaml\Properties\AssemblyInfo.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Rendering.cs" />
+    <Compile Include="..\..\PacMan.Xaml\Scene.cs" />
+    <Compile Include="HashSet.cs" />
+    <Compile Include="..\..\PacMan.Xaml\TextContent.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ApplicationDefinition Include="App.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </ApplicationDefinition>
+    <Page Include="MainPhonePage.xaml">
+      <SubType>Designer</SubType>
+      <Generator>MSBuild:Compile</Generator>
+    </Page>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Properties\AppManifest.xml" />
+    <None Include="Properties\WMAppManifest.xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="ApplicationIcon.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Background.png">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="SplashScreenImage.jpg" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\PacMan.Wp7.Library\PacMan.Wp7.Library.fsproj">
+      <Project>{FA2EAA9E-DB33-4136-B8D9-498E200B1044}</Project>
+      <Name>PacMan.Wp7.Library</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets" />
+  <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+  <ProjectExtensions />
+</Project>

PacMan.Wp7/PacMan.Wp7.App/Properties/AppManifest.xml

+<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
+        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+>
+    <Deployment.Parts>
+    </Deployment.Parts>
+</Deployment>

PacMan.Wp7/PacMan.Wp7.App/Properties/AssemblyInfo.cs

+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Resources;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("PacMan.App.WP7")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PacMan.App.WP7")]
+[assembly: AssemblyCopyright("Copyright ©  2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("0204bf9b-86b5-40fb-9ab3-e83378c7f9e6")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: NeutralResourcesLanguageAttribute("en-US")]

PacMan.Wp7/PacMan.Wp7.App/Properties/WMAppManifest.xml

+<?xml version="1.0" encoding="utf-8"?>
+
+<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">
+  <App xmlns="" ProductID="{40785d75-8cce-4f97-a1f8-f73673e45b71}" Title="PacMan.App.WP7" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal"  Author="PacMan.App.WP7 author" Description="Sample description" Publisher="PacMan.App.WP7">
+    <IconPath IsRelative="true" IsResource="false">ApplicationIcon.png</IconPath>
+    <Capabilities>
+      <Capability Name="ID_CAP_GAMERSERVICES"/>
+      <Capability Name="ID_CAP_IDENTITY_DEVICE"/>
+      <Capability Name="ID_CAP_IDENTITY_USER"/>
+      <Capability Name="ID_CAP_LOCATION"/>
+      <Capability Name="ID_CAP_MEDIALIB"/>
+      <Capability Name="ID_CAP_MICROPHONE"/>
+      <Capability Name="ID_CAP_NETWORKING"/>
+      <Capability Name="ID_CAP_PHONEDIALER"/>
+      <Capability Name="ID_CAP_PUSH_NOTIFICATION"/>
+      <Capability Name="ID_CAP_SENSORS"/>
+      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT"/>
+      <Capability Name="ID_CAP_ISV_CAMERA"/>
+      <Capability Name="ID_CAP_CONTACTS"/>
+      <Capability Name="ID_CAP_APPOINTMENTS"/>
+    </Capabilities>
+    <Tasks>
+      <DefaultTask  Name ="_default" NavigationPage="MainPhonePage.xaml"/>
+    </Tasks>
+    <Tokens>
+      <PrimaryToken TokenID="PacMan.App.WP7Token" TaskName="_default">
+        <TemplateType5>
+          <BackgroundImageURI IsRelative="true" IsResource="false">Background.png</BackgroundImageURI>
+          <Count>0</Count>
+          <Title>PacMan.App.WP7</Title>
+        </TemplateType5>
+      </PrimaryToken>
+    </Tokens>
+  </App>
+</Deployment>

PacMan.Wp7/PacMan.Wp7.App/SplashScreenImage.jpg

Added
New image

PacMan.Wp7/PacMan.Wp7.Library/Dependencies/FSharp.Core.dll

Binary file added.

PacMan.Wp7/PacMan.Wp7.Library/Dependencies/FSharp.Core.optdata

Binary file added.

PacMan.Wp7/PacMan.Wp7.Library/Dependencies/FSharp.Core.sigdata

Binary file added.

PacMan.Wp7/PacMan.Wp7.Library/Dependencies/FSharp.Core.xml

+<?xml version="1.0" encoding="utf-8"?>
+<doc>
+<assembly><name>FSharp.Core</name></assembly>
+<members>
+<member name="">
+
+</member>
+<member name="">
+
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpList`1.Tail">
+ <summary>Gets the tail of the list, which is a list containing all the elements of the list, excluding the first element </summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpList`1.Length">
+ <summary>Gets the number of items contained in the list</summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpList`1.Item(System.Int32)">
+ <summary>Gets the element of the list at the given position.</summary>
+ <remarks>Lists are represented as linked lists so this is an O(n) operation.</remarks>
+ <param name="index">The index.</param>
+ <returns>The value at the given index.</returns>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpList`1.IsEmpty">
+ <summary>Gets a value indicating if the list contains no entries</summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpList`1.Head">
+ <summary>Gets the first element of the list</summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpList`1.Empty">
+ <summary>Returns an empty list of a particular type</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpList`1.Cons(`0,Microsoft.FSharp.Collections.FSharpList{`0})">
+ <summary>Returns a list with <c>head</c> as its first element and <c>tail</c> as its subsequent elements</summary>
+ <param name="head">A new head value for the list.</param>
+ <param name="tail">The existing list.</param>
+ <returns>The list with head appended to the front of tail.</returns>
+</member>
+<member name="T:Microsoft.FSharp.Collections.FSharpList`1">
+ <summary>The type of immutable singly-linked lists.</summary>
+
+ <remarks>Use the constructors <c>[]</c> and <c>::</c> (infix) to create values of this type, or
+ the notation <c>[1;2;3]</c>. Use the values in the <c>List</c> module to manipulate 
+ values of this type, or pattern match against the values directly.</remarks>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpMap`2.Item(`0)">
+ <summary>Lookup an element in the map. Raise <c>KeyNotFoundException</c> if no binding
+ exists in the map.</summary>
+ <param name="key">The input key.</param>
+ <exception cref="System.Collections.Generic.KeyNotFoundException">Thrown when the key is not found.</exception>
+ <returns>The value mapped to the key.</returns>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpMap`2.IsEmpty">
+ <summary>Returns true if there are no bindings in the map.</summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpMap`2.Count">
+ <summary>The number of bindings in the map.</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpMap`2.TryFind(`0)">
+ <summary>Lookup an element in the map, returning a <c>Some</c> value if the element is in the domain 
+ of the map and <c>None</c> if not.</summary>
+ <param name="key">The input key.</param>
+ <returns>The mapped value, or None if the key is not in the map.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpMap`2.Remove(`0)">
+ <summary>Removes an element from the domain of the map. No exception is raised if the element is not present.</summary>
+ <param name="key">The input key.</param>
+ <returns>The resulting map.</returns>
+</member>
+<member name="">
+
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpMap`2.ContainsKey(`0)">
+ <summary>Tests if an element is in the domain of the map.</summary>
+ <param name="key">The input key.</param>
+ <returns>True if the map contains the given key.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpMap`2.Add(`0,`1)">
+ <summary>Returns a new map with the binding added to the given map.</summary>
+ <param name="key">The input key.</param>
+ <returns>The resulting map.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpMap`2.#ctor(System.Collections.Generic.IEnumerable{System.Tuple`2{`0,`1}})">
+ <summary>Builds a map that contains the bindings of the given IEnumerable.</summary>
+ <param name="elements">The input sequence of key/value pairs.</param>
+ <returns>The resulting map.</returns>
+</member>
+<member name="T:Microsoft.FSharp.Collections.FSharpMap`2">
+ <summary>Immutable maps. Keys are ordered by F# generic comparison.</summary>
+ 
+ <remarks>Maps based on generic comparison are efficient for small keys. They are not a suitable choice if keys are recursive data structures 
+ or if keys require bespoke comparison semantics.
+
+ All members of this class are thread-safe and may be used concurrently from multiple threads.</remarks>
+</member>
+<member name="T:Microsoft.FSharp.Collections.ResizeArray`1">
+ <summary>An abbreviation for the CLI type <c>System.Collections.Generic.List&lt;_&gt;</c></summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.op_Subtraction(Microsoft.FSharp.Collections.FSharpSet{`0},Microsoft.FSharp.Collections.FSharpSet{`0})">
+ <summary>Returns a new set with the elements of the second set removed from the first.</summary>
+ <param name="set1">The first input set.</param>
+ <param name="set2">The second input set.</param>
+ <returns>A set containing elements of the first set that are not contained in the second set.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.op_Addition(Microsoft.FSharp.Collections.FSharpSet{`0},Microsoft.FSharp.Collections.FSharpSet{`0})">
+ <summary>Compute the union of the two sets.</summary>
+ <param name="set1">The first input set.</param>
+ <param name="set2">The second input set.</param>
+ <returns>The union of the two input sets.</returns>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpSet`1.MinimumElement">
+ <summary>Returns the lowest element in the set according to the ordering being used for the set.</summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpSet`1.MaximumElement">
+ <summary>Returns the highest element in the set according to the ordering being used for the set.</summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpSet`1.IsEmpty">
+ <summary>A useful shortcut for Set.isEmpty. See the Set module for further operations on sets.</summary>
+</member>
+<member name="P:Microsoft.FSharp.Collections.FSharpSet`1.Count">
+ <summary>The number of elements in the set</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.Remove(`0)">
+ <summary>A useful shortcut for Set.remove. Note this operation produces a new set
+ and does not mutate the original set. The new set will share many storage
+ nodes with the original. See the Set module for further operations on sets.</summary>
+ <param name="value">The value to remove from the set.</param>
+ <returns>The result set.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.IsSupersetOf(Microsoft.FSharp.Collections.FSharpSet{`0})">
+ <summary>Evaluates to "true" if all elements of the second set are in the first.</summary>
+ <param name="otherSet">The set to test against.</param>
+ <returns>True if this set is a superset of <c>otherSet</c>.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.IsSubsetOf(Microsoft.FSharp.Collections.FSharpSet{`0})">
+ <summary>Evaluates to "true" if all elements of the first set are in the second.</summary>
+ <param name="otherSet">The set to test against.</param>
+ <returns>True if this set is a subset of <c>otherSet</c>.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.IsProperSupersetOf(Microsoft.FSharp.Collections.FSharpSet{`0})">
+ <summary>Evaluates to "true" if all elements of the second set are in the first, and at least 
+ one element of the first is not in the second.</summary>
+ <param name="otherSet">The set to test against.</param>
+ <returns>True if this set is a proper superset of <c>otherSet</c>.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.IsProperSubsetOf(Microsoft.FSharp.Collections.FSharpSet{`0})">
+ <summary>Evaluates to "true" if all elements of the first set are in the second, and at least 
+ one element of the second is not in the first.</summary>
+ <param name="otherSet">The set to test against.</param>
+ <returns>True if this set is a proper subset of <c>otherSet</c>.</returns>
+</member>
+<member name="">
+
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.Contains(`0)">
+ <summary>A useful shortcut for Set.contains. See the Set module for further operations on sets.</summary>
+ <param name="value">The value to check.</param>
+ <returns>True if the set contains <c>value</c>.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.Add(`0)">
+ <summary>A useful shortcut for Set.add. Note this operation produces a new set
+ and does not mutate the original set. The new set will share many storage
+ nodes with the original. See the Set module for further operations on sets.</summary>
+ <param name="value">The value to add to the set.</param>
+ <returns>The result set.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.FSharpSet`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
+ <summary>Create a set containing elements drawn from the given sequence.</summary>
+ <param name="elements">The input sequence.</param>
+ <returns>The result set.</returns>
+</member>
+<member name="T:Microsoft.FSharp.Collections.FSharpSet`1">
+ <summary>Immutable sets based on binary trees, where comparison is the
+ F# structural comparison function, potentially using implementations
+ of the IComparable interface on key values.</summary>
+
+ <remarks>See the Set module for further operations on sets.
+
+ All members of this class are thread-safe and may be used concurrently from multiple threads.</remarks>
+</member>
+<member name="T:Microsoft.FSharp.Collections.list`1">
+ <summary>An abbreviation for the type of immutable singly-linked lists. </summary>
+
+ <remarks>Use the constructors <c>[]</c> and <c>::</c> (infix) to create values of this type, or
+ the notation <c>[1;2;3]</c>. Use the values in the <c>List</c> module to manipulate 
+ values of this type, or pattern match against the values directly.</remarks>
+</member>
+<member name="T:Microsoft.FSharp.Collections.seq`1">
+ <summary>An abbreviation for the CLI type <c>System.Collections.Generic.IEnumerable&lt;_&gt;</c></summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Get``1(``0[0:,0:],System.Int32,System.Int32)">
+ <summary>Fetches an element from a 2D array. You can also use the syntax <c>array.[index1,index2]</c>.</summary>
+
+ <param name="array">The input array.</param>
+ <param name="index1">The index along the first dimension.</param>
+ <param name="index2">The index along the second dimension.</param>
+
+ <returns>The value of the array at the given index.</returns>
+ <exception cref="System.ArgumentException">Thrown when the indices are negative or exceed the bounds of the array.</exception>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Set``1(``0[0:,0:],System.Int32,System.Int32,``0)">
+ <summary>Sets the value of an element in an array. You can also use the syntax <c>array.[index1,index2] &lt;- value</c>.</summary>
+
+ <param name="array">The input array.</param>
+ <param name="index1">The index along the first dimension.</param>
+ <param name="index2">The index along the second dimension.</param>
+ <param name="value">The value to set in the array.</param>
+ <exception cref="System.ArgumentException">Thrown when the indices are negative or exceed the bounds of the array.</exception> 
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Rebase``1(``0[0:,0:])">
+ <summary>Builds a new array whose elements are the same as the input array but
+ where a non-zero-based input array generates a corresponding zero-based 
+ output array.</summary>
+
+ <param name="array">The input array.</param>
+
+ <returns>The zero-based output array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.MapIndexed``2(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,``1}}},``0[0:,0:])">
+ <summary>Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array. The integer indices passed to the
+ function indicates the element being transformed.</summary>
+
+ <remarks>For non-zero-based arrays the basing on an input array will be propagated to the output
+ array.</remarks>
+
+ <param name="mapping">A function that is applied to transform each element of the array.  The two integers
+ provide the index of the element.</param>
+ <param name="array">The input array.</param>
+
+ <returns>An array whose elements have been transformed by the given mapping.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Map``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[0:,0:])">
+ <summary>Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array.</summary>
+
+ <remarks>For non-zero-based arrays the basing on an input array will be propogated to the output
+ array.</remarks>
+
+ <param name="mapping">A function that is applied to transform each item of the input array.</param>
+ <param name="array">The input array.</param>
+
+ <returns>An array whose elements have been transformed by the given mapping.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Length2``1(``0[0:,0:])">
+ <summary>Returns the length of an array in the second dimension.</summary>
+
+ <param name="array">The input array.</param>
+
+ <returns>The length of the array in the second dimension.</returns>  
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Length1``1(``0[0:,0:])">
+ <summary>Returns the length of an array in the first dimension.</summary>
+
+ <param name="array">The input array.</param>
+
+ <returns>The length of the array in the first dimension.</returns>  
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.IterateIndexed``1(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.Unit}}},``0[0:,0:])">
+ <summary>Applies the given function to each element of the array.  The integer indices passed to the
+ function indicates the index of element.</summary>
+
+ <param name="action">A function to apply to each element of the array with the indices available as an argument.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Iterate``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.Unit},``0[0:,0:])">
+ <summary>Applies the given function to each element of the array.</summary>
+
+ <param name="action">A function to apply to each element of the array.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.ZeroCreate``1(System.Int32,System.Int32)">
+ <summary>Creates an array where the entries are initially Unchecked.defaultof&lt;'T&gt;.</summary>
+
+ <param name="length1">The length of the first dimension of the array.</param>
+ <param name="length2">The length of the second dimension of the array.</param>
+
+ <returns>The created array.</returns>
+ <exception cref="System.ArgumentException">Thrown when length1 or length2 is negative.</exception>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Create``1(System.Int32,System.Int32,``0)">
+ <summary>Creates an array whose elements are all initially the given value.</summary>
+
+ <param name="length1">The length of the first dimension of the array.</param>
+ <param name="length2">The length of the second dimension of the array.</param>
+ <param name="value">The value to populate the new array.</param>
+
+ <returns>The created array.</returns>
+ <exception cref="System.ArgumentException">Thrown when length1 or length2 is negative.</exception>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Initialize``1(System.Int32,System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,``0}})">
+ <summary>Creates an array given the dimensions and a generator function to compute the elements.</summary>
+
+ <param name="length1">The length of the first dimension of the array.</param>
+ <param name="length2">The length of the second dimension of the array.</param>
+ <param name="initializer">A function to produce elements of the array given the two indices.</param>
+
+ <returns>The generated array.</returns>
+ <exception cref="System.ArgumentException">Thrown when either of the lengths is negative.</exception>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.CopyTo``1(``0[0:,0:],System.Int32,System.Int32,``0[0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
+ <summary>Reads a range of elements from the first array and write them into the second.</summary>
+
+ <param name="source">The source array.</param>
+ <param name="sourceIndex1">The first-dimension index to begin copying from in the source array.</param>
+ <param name="sourceIndex2">The second-dimension index to begin copying from in the source array.</param>
+ <param name="target">The target array.</param>
+ <param name="targetIndex1">The first-dimension index to begin copying into in the target array.</param>
+ <param name="targetIndex2">The second-dimension index to begin copying into in the target array.</param>
+ <param name="length1">The number of elements to copy across the first dimension of the arrays.</param>
+ <param name="length2">The number of elements to copy across the second dimension of the arrays.</param>
+ <exception cref="System.ArgumentException">Thrown when any of the indices are negative or if either of
+ the counts are larger than the dimensions of the array allow.</exception>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Copy``1(``0[0:,0:])">
+ <summary>Builds a new array whose elements are the same as the input array.</summary>
+
+ <remarks>For non-zero-based arrays the basing on an input array will be propogated to the output
+ array.</remarks>
+
+ <param name="array">The input array.</param>
+
+ <returns>A copy of the input array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Base2``1(``0[0:,0:])">
+ <summary>Fetches the base-index for the second dimension of the array.</summary>
+
+ <param name="array">The input array.</param>
+
+ <returns>The base-index of the second dimension of the array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array2DModule.Base1``1(``0[0:,0:])">
+ <summary>Fetches the base-index for the first dimension of the array.</summary>
+
+ <param name="array">The input array.</param>
+
+ <returns>The base-index of the first dimension of the array.</returns>
+</member>
+<member name="T:Microsoft.FSharp.Collections.Array2DModule">
+ <summary>Basic operations on 2-dimensional arrays.</summary>
+
+ <remarks>F# and CLI multi-dimensional arrays are typically zero-based. 
+ However, CLI multi-dimensional arrays used in conjunction with external
+ libraries (e.g. libraries associated with Visual Basic) be 
+ non-zero based, using a potentially different base for each dimension.
+ The operations in this module will accept such arrays, and
+ the basing on an input array will be propagated to a matching output
+ array on the <c>Array2D.map</c> and <c>Array2D.mapi</c> operations.
+ Non-zero-based arrays can also be created using <c>Array2D.zeroCreateBased</c>, 
+ <c>Array2D.createBased</c> and <c>Array2D.initBased</c>.</remarks>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.ZeroCreate``1(System.Int32,System.Int32,System.Int32)">
+ <summary>Creates an array where the entries are initially the "default" value.</summary>
+ <param name="length1">The length of the first dimension.</param>
+ <param name="length2">The length of the second dimension.</param>
+ <param name="length3">The length of the third dimension.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Set``1(``0[0:,0:,0:],System.Int32,System.Int32,System.Int32,``0)">
+ <summary>Sets the value of an element in an array. You can also 
+ use the syntax 'array.[index1,index2,index3] &lt;- value'.</summary>
+ <param name="array">The input array.</param>
+ <param name="index1">The index along the first dimension.</param>
+ <param name="index2">The index along the second dimension.</param>
+ <param name="index3">The index along the third dimension.</param>
+ <param name="value">The value to set at the given index.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.MapIndexed``2(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,``1}}}},``0[0:,0:,0:])">
+ <summary>Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array. The integer indices passed to the
+ function indicates the element being transformed.</summary>
+
+ <remarks>For non-zero-based arrays the basing on an input array will be propogated to the output
+ array.</remarks>
+ <param name="mapping">The function to transform the elements at each index in the array.</param>
+ <param name="array">The input array.</param>
+ <returns>The array created from the transformed elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Map``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[0:,0:,0:])">
+ <summary>Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array.</summary>
+
+ <remarks>For non-zero-based arrays the basing on an input array will be propogated to the output
+ array.</remarks>
+ <param name="mapping">The function to transform each element of the array.</param>
+ <param name="array">The input array.</param>
+ <returns>The array created from the transformed elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Length3``1(``0[0:,0:,0:])">
+ <summary>Returns the length of an array in the third dimension.</summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array in the third dimension.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Length2``1(``0[0:,0:,0:])">
+ <summary>Returns the length of an array in the second dimension.</summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array in the second dimension.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Length1``1(``0[0:,0:,0:])">
+ <summary>Returns the length of an array in the first dimension  </summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array in the first dimension.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.IterateIndexed``1(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.Unit}}}},``0[0:,0:,0:])">
+ <summary>Applies the given function to each element of the array. The integer indicies passed to the
+ function indicates the index of element.</summary>
+ <param name="action">The function to apply to each element of the array.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Iterate``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.Unit},``0[0:,0:,0:])">
+ <summary>Applies the given function to each element of the array.</summary>
+ <param name="action">The function to apply to each element of the array.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Get``1(``0[0:,0:,0:],System.Int32,System.Int32,System.Int32)">
+ <summary>Fetches an element from a 3D array. You can also use the syntax 'array.[index1,index2,index3]'</summary>
+ <param name="array">The input array.</param>
+ <param name="index1">The index along the first dimension.</param>
+ <param name="index2">The index along the second dimension.</param>
+ <param name="index3">The index along the third dimension.</param>
+ <returns>The value at the given index.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Initialize``1(System.Int32,System.Int32,System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,``0}}})">
+ <summary>Creates an array given the dimensions and a generator function to compute the elements.</summary>
+ <param name="length1">The length of the first dimension.</param>
+ <param name="length2">The length of the second dimension.</param>
+ <param name="length3">The length of the third dimension.</param>
+ <param name="initializer">The function to create an initial value at each index into the array.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array3DModule.Create``1(System.Int32,System.Int32,System.Int32,``0)">
+ <summary>Creates an array whose elements are all initially the given value.</summary>
+ <param name="length1">The length of the first dimension.</param>
+ <param name="length2">The length of the second dimension.</param>
+ <param name="length3">The length of the third dimension.</param>
+ <param name="initial">The value of the array elements.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="T:Microsoft.FSharp.Collections.Array3DModule">
+ <summary>Basic operations on rank 3 arrays.</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Set``1(``0[0:,0:,0:,0:],System.Int32,System.Int32,System.Int32,System.Int32,``0)">
+ <summary>Sets the value of an element in an array. You can also 
+ use the syntax 'array.[index1,index2,index3,index4] &lt;- value'.</summary>
+ <param name="array">The input array.</param>
+ <param name="index1">The index along the first dimension.</param>
+ <param name="index2">The index along the second dimension.</param>
+ <param name="index3">The index along the third dimension.</param>
+ <param name="index4">The index along the fourth dimension.</param>
+ <param name="value">The value to set.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Get``1(``0[0:,0:,0:,0:],System.Int32,System.Int32,System.Int32,System.Int32)">
+ <summary>Fetches an element from a 4D array. You can also use the syntax 'array.[index1,index2,index3,index4]'</summary>
+ <param name="array">The input array.</param>
+ <param name="index1">The index along the first dimension.</param>
+ <param name="index2">The index along the second dimension.</param>
+ <param name="index3">The index along the third dimension.</param>
+ <param name="index4">The index along the fourth dimension.</param>
+ <returns>The value at the given index.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.ZeroCreate``1(System.Int32,System.Int32,System.Int32,System.Int32)">
+ <summary>Creates an array where the entries are initially the "default" value.</summary>
+ <param name="length1">The length of the first dimension.</param>
+ <param name="length2">The length of the second dimension.</param>
+ <param name="length3">The length of the third dimension.</param>
+ <param name="length4">The length of the fourth dimension.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Length4``1(``0[0:,0:,0:,0:])">
+ <summary>Returns the length of an array in the fourth dimension.</summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array in the fourth dimension.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Length3``1(``0[0:,0:,0:,0:])">
+ <summary>Returns the length of an array in the third dimension.</summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array in the third dimension.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Length2``1(``0[0:,0:,0:,0:])">
+ <summary>Returns the length of an array in the second dimension.</summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array in the second dimension.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Length1``1(``0[0:,0:,0:,0:])">
+ <summary>Returns the length of an array in the first dimension  </summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array in the first dimension.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Initialize``1(System.Int32,System.Int32,System.Int32,System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,``0}}}})">
+ <summary>Creates an array given the dimensions and a generator function to compute the elements.</summary>
+ <param name="length1">The length of the first dimension.</param>
+ <param name="length2">The length of the second dimension.</param>
+ <param name="length3">The length of the third dimension.</param>
+ <param name="length4">The length of the fourth dimension.</param>
+ <param name="initializer">The function to create an initial value at each index in the array.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.Array4DModule.Create``1(System.Int32,System.Int32,System.Int32,System.Int32,``0)">
+ <summary>Creates an array whose elements are all initially the given value</summary>
+ <param name="length1">The length of the first dimension.</param>
+ <param name="length2">The length of the second dimension.</param>
+ <param name="length3">The length of the third dimension.</param>
+ <param name="length4">The length of the fourth dimension.</param>
+ <param name="initial">The initial value for each element of the array.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="T:Microsoft.FSharp.Collections.Array4DModule">
+ <summary>Basic operations on rank 4 arrays. </summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Zip3``3(``0[],``1[],``2[])">
+ <summary>Combines three arrays into an array of pairs. The three arrays must have equal lengths, otherwise an <c>ArgumentException</c> is
+ raised.</summary>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <param name="array3">The third input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+ <returns>The array of tupled elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Zip``2(``0[],``1[])">
+ <summary>Combines the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an <c>ArgumentException</c> is
+ raised.</summary>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+ <returns>The array of tupled elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Unzip3``3(System.Tuple`3{``0,``1,``2}[])">
+ <summary>Splits an array of triples into three arrays.</summary>
+ <param name="array">The input array.</param>
+ <returns>The tuple of three arrays.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Unzip``2(System.Tuple`2{``0,``1}[])">
+ <summary>Splits an array of pairs into two arrays.</summary>
+ <param name="array">The input array.</param>
+ <returns>The two arrays.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.TryFindIndex``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Returns the index of the first element in the array
+ that satisfies the given predicate.</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <returns>The index of the first element that satisfies the predicate, or None.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.TryFind``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Returns the first element for which the given function returns <c>true</c>.
+ Return <c>None</c> if no such element exists.</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <returns>The first element that satisfies the predicate, or None.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.ToSeq``1(``0[])">
+ <summary>Views the given array as a sequence.</summary>
+ <param name="array">The input array.</param>
+ <returns>The sequence of array elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.ToList``1(``0[])">
+ <summary>Builds a list from the given array.</summary>
+ <param name="array">The input array.</param>
+ <returns>The list of array elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.SumBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[])">
+ <summary>Returns the sum of the results generated by applying the function to each element of the array.</summary>
+ <param name="projection">The function to transform the array elements into the type to be summed.</param>
+ <param name="array">The input array.</param>
+ <returns>The resulting sum.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Sum``1(``0[])">
+ <summary>Returns the sum of the elements in the array.</summary>
+ <param name="array">The input array.</param>
+ <returns>The resulting sum.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.SortInPlace``1(``0[])">
+ <summary>Sorts the elements of an array by mutating the array in-place, using the given comparison function. 
+ Elements are compared using Operators.compare.</summary>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.SortInPlaceWith``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Int32}},``0[])">
+ <summary>Sorts the elements of an array by mutating the array in-place, using the given comparison function as the order.</summary>
+ <param name="comparer">The function to compare pairs of array elements.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.SortInPlaceBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[])">
+ <summary>Sorts the elements of an array by mutating the array in-place, using the given projection for the keys. 
+ Elements are compared using Operators.compare.</summary>
+
+ <remarks>This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. 
+ For a stable sort, consider using Seq.sort.</remarks>
+ <param name="projection">The function to transform array elements into the type that is compared.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.SortWith``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Int32}},``0[])">
+ <summary>Sorts the elements of an array, using the given comparison function as the order, returning a new array.</summary>
+
+ <remarks>This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. 
+ For a stable sort, consider using Seq.sort.</remarks>
+ <param name="comparer">The function to compare pairs of array elements.</param>
+ <param name="array">The input array.</param>
+ <returns>The sorted array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.SortBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[])">
+ <summary>Sorts the elements of an array, using the given projection for the keys and returning a new array. 
+ Elements are compared using Operators.compare.</summary>
+
+ <remarks>This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. 
+ For a stable sort, consider using Seq.sort.</remarks>
+ <param name="projection">The function to transform array elements into the type that is compared.</param>
+ <param name="array">The input array.</param>
+ <returns>The sorted array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Sort``1(``0[])">
+ <summary>Sorts the elements of an array, returning a new array. Elements are compared using Operators.compare. </summary>
+
+ <remarks>This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. 
+ For a stable sort, consider using Seq.sort.</remarks>
+ <param name="array">The input array.</param>
+ <returns>The sorted array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.GetSubArray``1(``0[],System.Int32,System.Int32)">
+ <summary>Builds a new array that contains the given subrange specified by
+ starting index and length.</summary>
+ <param name="array">The input array.</param>
+ <param name="startIndex">The index of the first element of the sub array.</param>
+ <param name="count">The length of the sub array.</param>
+ <returns>The created sub array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Set``1(``0[],System.Int32,``0)">
+ <summary>Sets an element of an array.</summary>
+ <param name="array">The input array.</param>
+ <param name="index">The input index.</param>
+ <param name="value">The input value.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.ScanBack``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,``1}},``0[],``1)">
+ <summary>Like <c>foldBack</c>, but return both the intermediary and final results.</summary>
+ <param name="folder">The function to update the state given the input elements.</param>
+ <param name="array">The input array.</param>
+ <param name="state">The initial state.</param>
+ <returns>The array of state values.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Scan``2(Microsoft.FSharp.Core.FSharpFunc`2{``1,Microsoft.FSharp.Core.FSharpFunc`2{``0,``1}},``1,``0[])">
+ <summary>Like <c>fold</c>, but return the intermediary and final results.</summary>
+ <param name="folder">The function to update the state given the input elements.</param>
+ <param name="state">The initial state.</param>
+ <param name="array">The input array.</param>
+ <returns>The array of state values.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Reverse``1(``0[])">
+ <summary>Returns a new array with the elements in reverse order.</summary>
+ <param name="array">The input array.</param>
+ <returns>The reversed array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.ReduceBack``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``0,``0}},``0[])">
+ <summary>Applies a function to each element of the array, threading an accumulator argument
+ through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> 
+ then computes <c>f i0 (...(f iN-1 iN))</c>.
+ Raises ArgumentException if the array has size zero.</summary>
+ <param name="reduction">The function to reduce a pair of elements to a single element.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input array is empty.</exception>
+ <returns>The final result of the reductions.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Reduce``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``0,``0}},``0[])">
+ <summary>Applies a function to each element of the array, threading an accumulator argument
+ through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> 
+ then computes <c>f (... (f i0 i1)...) iN</c>.
+ Raises ArgumentException if the array has size zero.</summary>
+ <param name="reduction">The function to reduce a pair of elements to a single element.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input array is empty.</exception>
+ <returns>The final result of the redcutions.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Permute``1(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,System.Int32},``0[])">
+ <summary>Returns an array with all elements permuted according to the
+ specified permutation.</summary>
+ <param name="indexMap">The function that maps input indices to output indices.</param>
+ <param name="array">The input array.</param>
+ <returns>The output array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Partition``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Splits the collection into two collections, containing the 
+ elements for which the given predicate returns "true" and "false"
+ respectively.</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <returns>A pair of arrays. The first containing the elements the predicate evaluated to true,
+ and the second containing those evaluated to false.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.OfSeq``1(System.Collections.Generic.IEnumerable{``0})">
+ <summary>Builds a new array from the given enumerable object.</summary>
+ <param name="source">The input sequence.</param>
+ <returns>The array of elements from the sequence.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.OfList``1(Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Builds an array from the given list.</summary>
+ <param name="list">The input list.</param>
+ <returns>The array of elements from the list.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.MinBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[])">
+ <summary>Returns the lowest of all elements of the array, compared via Operators.min on the function result.</summary>
+
+ <remarks>Throws ArgumentException for empty arrays.</remarks>
+ <param name="projection">The function to transform the elements into a type supporting comparison.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input array is empty.</exception>
+ <returns>The minimum element.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Min``1(``0[])">
+ <summary>Returns the lowest of all elements of the array, compared via Operators.min.</summary>
+
+ <remarks>Throws ArgumentException for empty arrays</remarks>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input array is empty.</exception>
+ <returns>The minimum element.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.MaxBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[])">
+ <summary>Returns the greatest of all elements of the array, compared via Operators.max on the function result.</summary>
+
+ <remarks>Throws ArgumentException for empty arrays.</remarks>
+ <param name="projection">The function to transform the elements into a type supporting comparison.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input array is empty.</exception>
+ <returns>The maximum element.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Max``1(``0[])">
+ <summary>Returns the greatest of all elements of the array, compared via Operators.max on the function result.</summary>
+
+ <remarks>Throws ArgumentException for empty arrays.</remarks>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input array is empty.</exception>
+ <returns>The maximum element.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.MapIndexed``2(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,``1}},``0[])">
+ <summary>Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array. The integer index passed to the
+ function indicates the index of element being transformed.</summary>
+ <param name="mapping">The function to transform elements and their indices.</param>
+ <param name="array">The input array.</param>
+ <returns>The array of transformed elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.MapIndexed2``3(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,``2}}},``0[],``1[])">
+ <summary>Builds a new collection whose elements are the results of applying the given function
+ to the corresponding elements of the two collections pairwise, also passing the index of 
+ the elements. The two input arrays must have the same lengths, otherwise an <c>ArgumentException</c> is
+ raised.</summary>
+ <param name="mapping">The function to transform pairs of input elements and their indices.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+ <returns>The array of transformed elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Map2``3(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,``2}},``0[],``1[])">
+ <summary>Builds a new collection whose elements are the results of applying the given function
+ to the corresponding elements of the two collections pairwise. The two input
+ arrays must have the same lengths, otherwise an <c>ArgumentException</c> is
+ raised.</summary>
+ <param name="mapping">The function to transform the pairs of the input elements.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+ <returns>The array of transformed elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Map``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[])">
+ <summary>Builds a new array whose elements are the results of applying the given function
+ to each of the elements of the array.</summary>
+ <param name="mapping">The function to transform elements of the array.</param>
+ <param name="array">The input array.</param>
+ <returns>The array of transformed elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Length``1(``0[])">
+ <summary>Returns the length of an array. You can also use property arr.Length.</summary>
+ <param name="array">The input array.</param>
+ <returns>The length of the array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.IterateIndexed2``2(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,Microsoft.FSharp.Core.Unit}}},``0[],``1[])">
+ <summary>Applies the given function to pair of elements drawn from matching indices in two arrays,
+ also passing the index of the elements. The two arrays must have the same lengths, 
+ otherwise an <c>ArgumentException</c> is raised.</summary>
+ <param name="action">The function to apply to each index and pair of elements.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.IterateIndexed``1(Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.Unit}},``0[])">
+ <summary>Applies the given function to each element of the array. The integer passed to the
+ function indicates the index of element.</summary>
+ <param name="action">The function to apply to each index and element.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Iterate2``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,Microsoft.FSharp.Core.Unit}},``0[],``1[])">
+ <summary>Applies the given function to pair of elements drawn from matching indices in two arrays. The
+ two arrays must have the same lengths, otherwise an <c>ArgumentException</c> is
+ raised.</summary>
+ <param name="action">The function to apply.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Iterate``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.Unit},``0[])">
+ <summary>Applies the given function to each element of the array.</summary>
+ <param name="action">The function to apply.</param>
+ <param name="array">The input array.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.IsEmpty``1(``0[])">
+ <summary>Returns true if the given array is empty, otherwise false.</summary>
+ <param name="array">The input array.</param>
+ <returns>True if the array is empty.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.ZeroCreate``1(System.Int32)">
+ <summary>Creates an array where the entries are initially the default value Unchecked.defaultof&lt;'T&gt;.</summary>
+ <param name="count">The length of the array to create.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Initialize``1(System.Int32,Microsoft.FSharp.Core.FSharpFunc`2{System.Int32,``0})">
+ <summary>Creates an array given the dimension and a generator function to compute the elements.</summary>
+ <param name="count">The number of elements to initialize.</param>
+ <param name="initializer">The function to generate the initial values for each index.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Get``1(``0[],System.Int32)">
+ <summary>Gets an element from an array.</summary>
+ <param name="array">The input array.</param>
+ <param name="index">The input index.</param>
+ <returns>The value of the array at the given index.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.FoldBack2``3(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,Microsoft.FSharp.Core.FSharpFunc`2{``2,``2}}},``0[],``1[],``2)">
+ <summary>Apply a function to pairs of elements drawn from the two collections, right-to-left, 
+ threading an accumulator argument through the computation. The two input
+ arrays must have the same lengths, otherwise an <c>ArgumentException</c> is
+ raised.</summary>
+ <param name="folder">The function to update the state given the input elements.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <param name="state">The initial state.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+ <returns>The final state.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Fold2``3(Microsoft.FSharp.Core.FSharpFunc`2{``2,Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,``2}}},``2,``0[],``1[])">
+ <summary>Applies a function to pairs of elements drawn from the two collections, 
+ left-to-right, threading an accumulator argument
+ through the computation. The two input
+ arrays must have the same lengths, otherwise an <c>ArgumentException</c> is
+ raised.</summary>
+ <param name="folder">The function to update the state given the input elements.</param>
+ <param name="state">The initial state.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+ <returns>The final state.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.FoldBack``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,``1}},``0[],``1)">
+ <summary>Applies a function to each element of the array, threading an accumulator argument
+ through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then computes 
+ <c>f i0 (...(f iN s))</c></summary>
+ <param name="folder">The function to update the state given the input elements.</param>
+ <param name="array">The input array.</param>
+ <param name="state">The initial state.</param>
+ <returns>The final state.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Fold``2(Microsoft.FSharp.Core.FSharpFunc`2{``1,Microsoft.FSharp.Core.FSharpFunc`2{``0,``1}},``1,``0[])">
+ <summary>Applies a function to each element of the collection, threading an accumulator argument
+ through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then computes 
+ <c>f (... (f s i0)...) iN</c></summary>
+ <param name="folder">The function to update the state given the input elements.</param>
+ <param name="state">The initial state.</param>
+ <param name="array">The input array.</param>
+ <returns>The final state.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.ForAll2``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,System.Boolean}},``0[],``1[])">
+ <summary>Tests if all corresponding elements of the array satisfy the given predicate pairwise.</summary>
+
+ <remarks>The predicate is applied to matching elements in the two collections up to the lesser of the 
+ two lengths of the collections. If any application returns false then the overall result is 
+ false and no further elements are tested. Otherwise, if one collection is longer 
+ than the other then the <c>ArgumentException</c> exception is raised. 
+ Otherwise, true is returned.</remarks>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <exception cref="System.ArgumentException">Thrown when the input arrays differ in length.</exception>
+ <returns>True if all of the array elements satisfy the predicate.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.ForAll``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Tests if all elements of the array satisfy the given predicate.</summary>
+
+ <remarks>The predicate is applied to the elements of the input collection. If any application 
+ returns false then the overall result is false and no further elements are tested. 
+ Otherwise, true is returned.</remarks>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <returns>True if all of the array elements satisfy the predicate.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.FindIndex``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Returns the index of the first element in the array
+ that satisfies the given predicate. Raise <c>KeyNotFoundException</c> if 
+ none of the elements satisy the predicate.</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.Collections.Generic.KeyNotFoundException">Thrown if <c>predicate</c>
+ never returns true.</exception>
+ <returns>The index of the first element in the array that satisfies the given predicate.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Find``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Returns the first element for which the given function returns 'true'.
+ Raise <c>KeyNotFoundException</c> if no such element exists.</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.Collections.Generic.KeyNotFoundException">Thrown if <c>predicate</c>
+ never returns true.</exception>
+ <returns>The first element for which <c>predicate</c> returns true.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Filter``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Returns a new collection containing only the elements of the collection
+ for which the given predicate returns "true".</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <returns>An array containing the elements for which the given predicate returns true.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Exists2``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,System.Boolean}},``0[],``1[])">
+ <summary>Tests if any pair of corresponding elements of the arrays satisfies the given predicate.</summary>
+
+ <remarks>The predicate is applied to matching elements in the two collections up to the lesser of the 
+ two lengths of the collections. If any application returns true then the overall result is 
+ true and no further elements are tested. Otherwise, if one collections is longer 
+ than the other then the <c>ArgumentException</c> exception is raised. 
+ Otherwise, false is returned.</remarks>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <returns>True if any result from <c>predicate</c> is true.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Exists``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},``0[])">
+ <summary>Tests if any element of the array satisfies the given predicate.</summary>
+
+ <remarks>The predicate is applied to the elements of the input array. If any application 
+ returns true then the overall result is true and no further elements are tested. 
+ Otherwise, false is returned.</remarks>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="array">The input array.</param>
+ <returns>True if any result from <c>predicate</c> is true.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Empty``1">
+ <summary>Returns an empty array of the given type.</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Choose``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpOption{``1}},``0[])">
+ <summary>Applies the given function to each element of the array. Returns
+ the array comprised of the results "x" for each element where
+ the function returns Some(x)</summary>
+ <param name="chooser">The function to generate options from the elements.</param>
+ <param name="array">The input array.</param>
+ <returns>The array of results.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Pick``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpOption{``1}},``0[])">
+ <summary>Applies the given function to successive elements, returning the first
+ result where function returns <c>Some(x)</c> for some <c>x</c>. If the function 
+ never returns <c>Some(x)</c> then <c>KeyNotFoundException</c> is raised.</summary>
+ <param name="chooser">The function to generate options from the elements.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.Collections.Generic.KeyNotFoundException">Thrown if every result from
+ <c>chooser</c> is <c>None</c>.</exception>
+ <returns>The first result.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Fill``1(``0[],System.Int32,System.Int32,``0)">
+ <summary>Fills a range of elements of the array with the given value.</summary>
+ <param name="target">The target array.</param>
+ <param name="targetIndex">The index of the first element to set.</param>
+ <param name="count">The number of elements to set.</param>
+ <param name="value">The value to set.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.TryPick``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpOption{``1}},``0[])">
+ <summary>Applies the given function to successive elements, returning the first
+ result where function returns <c>Some(x)</c> for some <c>x</c>. If the function 
+ never returns <c>Some(x)</c> then <c>None</c> is returned.</summary>
+ <param name="chooser">The function to transform the array elements into options.</param>
+ <param name="array">The input array.</param>
+ <returns>The first transformed element that is <c>Some(x)</c>.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Create``1(System.Int32,``0)">
+ <summary>Creates an array whose elements are all initially the given value.</summary>
+ <param name="count">The length of the array to create.</param>
+ <param name="value">The value for the elements.</param>
+ <returns>The created array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Copy``1(``0[])">
+ <summary>Builds a new array that contains the elements of the given array.</summary>
+ <param name="array">The input array.</param>
+ <returns>A copy of the input array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Concat``1(System.Collections.Generic.IEnumerable{``0[]})">
+ <summary>Builds a new array that contains the elements of each of the given sequence of arrays.</summary>
+ <param name="arrays">The input sequence of arrays.</param>
+ <returns>The concatenation of the sequence of input arrays.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Collect``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1[]},``0[])">
+ <summary>For each element of the array, applies the given function. Concatenates all the results and return the combined array.</summary>
+ <param name="mapping">The function to create sub-arrays from the input array elements.</param>
+ <param name="array">The input array.</param>
+ <returns>The concatenation of the sub-arrays.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.CopyTo``1(``0[],System.Int32,``0[],System.Int32,System.Int32)">
+ <summary>Reads a range of elements from the first array and write them into the second.</summary>
+ <param name="source">The source array.</param>
+ <param name="sourceIndex">The starting index of the source array.</param>
+ <param name="target">The target array.</param>
+ <param name="targetIndex">The starting index of the target array.</param>
+ <param name="count">The number of elements to copy.</param>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.AverageBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},``0[])">
+ <summary>Returns the average of the elements generated by applying the function to each element of the array.</summary>
+ <param name="projection">The function to transform the array elements before averaging.</param>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when <c>array</c> is empty.</exception>
+ <returns>The computed average.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Average``1(``0[])">
+ <summary>Returns the average of the elements in the array.</summary>
+ <param name="array">The input array.</param>
+ <exception cref="System.ArgumentException">Thrown when <c>array</c> is empty.</exception>
+ <returns>The average of the elements in the array.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ArrayModule.Append``1(``0[],``0[])">
+ <summary>Builds a new array that contains the elements of the first array followed by the elements of the second array.</summary>
+ <param name="array1">The first input array.</param>
+ <param name="array2">The second input array.</param>
+ <returns>The resulting array.</returns>
+</member>
+<member name="T:Microsoft.FSharp.Collections.ArrayModule">
+ <summary>Basic operations on arrays.</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ComparisonIdentity.FromFunction``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Int32}})">
+ <summary>Compare using the given comparer function.</summary>
+ <param name="comparer">A function to compare two values.</param>
+ <returns>An object implementing IComparer using the supplied comparer.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ComparisonIdentity.Structural``1">
+ <summary>Structural comparison.  Compare using Operators.compare.</summary>
+</member>
+<member name="T:Microsoft.FSharp.Collections.ComparisonIdentity">
+ <summary>Common notions of comparison identity used with sorted data structures.</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.HashIdentity.FromFunctions``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Int32},Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean}})">
+ <summary>Hash using the given hashing and equality functions.</summary>
+ <param name="hasher">A function to generate a hash code from a value.</param>
+ <param name="equality">A function to test equality of two values.</param>
+ <returns>An object implementing IEqualityComparer using the supplied functions.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.HashIdentity.Reference``1">
+ <summary>Physical hashing (hash on reference identity of objects, and the contents of value types).  
+ Hash using LanguagePrimitives.PhysicalEquality and LanguagePrimitives.PhysicalHash,
+ That is, for value types use GetHashCode and Object.Equals (if no other optimization available),
+ and for reference types use System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode and 
+ reference equality.</summary>
+</member>
+<member name="">
+
+</member>
+<member name="M:Microsoft.FSharp.Collections.HashIdentity.Structural``1">
+ <summary>Structural hashing.  Hash using Operators.(=) and Operators.hash.</summary>
+</member>
+<member name="T:Microsoft.FSharp.Collections.HashIdentity">
+ <summary>Common notions of value identity used with hash tables.</summary>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.Zip3``3(Microsoft.FSharp.Collections.FSharpList{``0},Microsoft.FSharp.Collections.FSharpList{``1},Microsoft.FSharp.Collections.FSharpList{``2})">
+ <summary>Combines the three lists into a list of triples. The lists must have equal lengths.</summary>
+ <param name="list1">The first input list.</param>
+ <param name="list2">The second input list.</param>
+ <param name="list3">The third input list.</param>
+ <returns>A single list containing triples of matching elements from the input lists.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.Zip``2(Microsoft.FSharp.Collections.FSharpList{``0},Microsoft.FSharp.Collections.FSharpList{``1})">
+ <summary>Combines the two lists into a list of pairs. The two lists must have equal lengths.</summary>
+ <param name="list1">The first input list.</param>
+ <param name="list2">The second input list.</param>
+ <returns>A single list containing pairs of matching elements from the input lists.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.Unzip3``3(Microsoft.FSharp.Collections.FSharpList{System.Tuple`3{``0,``1,``2}})">
+ <summary>Splits a list of triples into three lists.</summary>
+ <param name="list">The input list.</param>
+ <returns>Three lists of split elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.Unzip``2(Microsoft.FSharp.Collections.FSharpList{System.Tuple`2{``0,``1}})">
+ <summary>Splits a list of pairs into two lists.</summary>
+ <param name="list">The input list.</param>
+ <returns>Two lists of split elements.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.TryFindIndex``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Returns the index of the first element in the list
+ that satisfies the given predicate.
+ Return <c>None</c> if no such element exists.</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="list">The input list.</param>
+ <returns>The index of the first element for which the predicate returns true, or None if
+ every element evaluates to false.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.TryFind``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Boolean},Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Returns the first element for which the given function returns <c>true.</c>.
+ Return <c>None</c> if no such element exists.</summary>
+ <param name="predicate">The function to test the input elements.</param>
+ <param name="list">The input list.</param>
+ <returns>The first element for which the predicate returns true, or None if
+ every element evaluates to false.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.TryPick``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpOption{``1}},Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Applies the given function to successive elements, returning <c>Some(x)</c> the first
+ result where function returns <c>Some(x)</c> for some x. If no such element 
+ exists then return <c>None</c>.</summary>
+ <param name="chooser">The function to generate options from the elements.</param>
+ <param name="list">The input list.</param>
+ <returns>The first resulting value or None.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.ToSeq``1(Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Views the given list as a sequence.</summary>
+ <param name="list">The input list.</param>
+ <returns>The sequence of elements in the list.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.ToArray``1(Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Builds an array from the given list.</summary>
+ <param name="list">The input list.</param>
+ <returns>The array containing the elements of the list.</returns>
+</member>
+<member name="">
+
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.SumBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Returns the sum of the results generated by applying the function to each element of the list.</summary>
+ <param name="projection">The function to transform the list elements into the type to be summed.</param>
+ <param name="list">The input list.</param>
+ <returns>The resulting sum.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.Sum``1(Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Returns the sum of the elements in the list.</summary>
+ <param name="list">The input list.</param>
+ <returns>The resulting sum.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.Sort``1(Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Sorts the given list using Operators.compare.</summary>
+
+ <remarks>This is a stable sort, i.e. the original order of equal elements is preserved.</remarks>
+ <param name="list">The input list.</param>
+ <returns>The sorted list.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.SortBy``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,``1},Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Sorts the given list using keys given by the given projection. Keys are compared using Operators.compare.</summary>
+
+ <remarks>This is a stable sort, i.e. the original order of equal elements is preserved.</remarks>
+ <param name="projection">The function to transform the list elements into the type to be compared.</param>
+ <param name="list">The input list.</param>
+ <returns>The sorted list.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.SortWith``1(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``0,System.Int32}},Microsoft.FSharp.Collections.FSharpList{``0})">
+ <summary>Sorts the given list using the given comparison function.</summary>
+
+ <remarks>This is a stable sort, i.e. the original order of equal elements is preserved.</remarks>
+ <param name="comparer">The function to compare the list elements.</param>
+ <param name="list">The input list.</param>
+ <returns>The sorted list.</returns>
+</member>
+<member name="M:Microsoft.FSharp.Collections.ListModule.ScanBack``2(Microsoft.FSharp.Core.FSharpFunc`2{``0,Microsoft.FSharp.Core.FSharpFunc`2{``1,``1}},Microsoft.FSharp.Collections.FSharpList{``0},``1)">
+ <summary>Like <c>foldBack</c>, but returns both the intermediary and final results</summary>
+ <param name="folder">The function to update the state given the input elements.</param>
+ <param name="list">The input list.</param>