@@ -1445,16 +1445,17 @@ namespace Microsoft.FSharp.Core
14451445[< AbstractClass> ]
14461446type FSharpFunc<'T , 'U> =
14471447
1448- /// < summary>Construct an instance of an F #first class function value < / summary>
1449- /// < returns>The created F #function.< / returns>
1448+ /// < summary>Construct an instance of an F #first class function value < / summary>
1449+ /// < returns>The created F #function.< / returns>
14501450new : unit -> FSharpFunc<'T , 'U>
1451-
1451+
14521452/// < summary>Invoke an F #first class function value with one argument< / summary>
14531453/// < param name = "func "></ param>
14541454/// < returns>'U< / returns>
14551455abstract member Invoke : func : 'T -> 'U
14561456
14571457#if ! FX_NO_CONVERTER
1458+
14581459/// < summary>Convert an F #first class function value to a value of type <c>System.Converter< / c>< / summary>
14591460/// < param name = "func "> The input function.< / param>
14601461/// < returns>A System.Converter of the function type.< / returns>
@@ -1469,6 +1470,7 @@ namespace Microsoft.FSharp.Core
14691470/// < param name = "func "> The input function.< / param>
14701471/// < returns>System.Converter & lt ; 'T , 'U & gt ;</ returns>
14711472static member ToConverter : func :( 'T -> 'U ) -> System.Converter<'T , 'U>
1473+
14721474/// < summary>Convert an value of type <c>System.Converter< / c> to a F #first class function value < / summary>
14731475/// < param name = "converter "> The input System.Converter.< / param>
14741476/// < returns>An F #function of the same type.< / returns>
@@ -1520,36 +1522,96 @@ namespace Microsoft.FSharp.Core
15201522type FuncConvert =
15211523
15221524/// < summary>Convert the given Action delegate object to an F #function value< / summary>
1523- /// < param name = "action "> The inputaction .< / param>
1525+ /// < param name = "action "> The inputAction delegate .< / param>
15241526/// < returns>The F #function.< / returns>
1525- static member ToFSharpFunc : action : Action<'T> -> ( 'T -> unit )
1527+ static memberinline ToFSharpFunc : action : Action<'T> -> ( 'T -> unit )
15261528
15271529#if ! FX_NO_CONVERTER
15281530/// < summary>Convert the given Converter delegate object to an F #function value< / summary>
1529- /// < param name = "converter "> The input Converter.< / param>
1531+ /// < param name = "converter "> The input Converter delegate .< / param>
15301532/// < returns>The F #function.< / returns>
1531- static member ToFSharpFunc : converter : Converter<'T , 'U> -> ( 'T -> 'U )
1533+ static memberinline ToFSharpFunc : converter : Converter<'T , 'U> -> ( 'T -> 'U )
15321534#endif
15331535
1536+ /// < summary>Convert the given Action delegate object to an F #function value< / summary>
1537+ /// < param name = "func "> The input Action delegate.< / param>
1538+ /// < returns>The F #function.< / returns>
1539+ static member inline FromAction : action : Action -> ( unit -> unit )
1540+
1541+ /// < summary>Convert the given Action delegate object to an F #function value< / summary>
1542+ /// < param name = "func "> The input Action delegate.< / param>
1543+ /// < returns>The F #function.< / returns>
1544+ static member inline FromAction : action : Action<'T> -> ( 'T -> unit )
1545+
1546+ /// < summary>Convert the given Action delegate object to an F #function value< / summary>
1547+ /// < param name = "func "> The input Action delegate.< / param>
1548+ /// < returns>The F #funcfunction.< / returns>
1549+ static member inline FromAction : action : Action<'T1 , 'T2> -> ( 'T1 -> 'T2 -> unit )
1550+
1551+ /// < summary>Convert the given Action delegate object to an F #function value< / summary>
1552+ /// < param name = "func "> The input Action delegate.< / param>
1553+ /// < returns>The F #function.< / returns>
1554+ static member inline FromAction : action : Action<'T1 , 'T2 , 'T3> -> ( 'T1 -> 'T2 -> 'T3 -> unit )
1555+
1556+ /// < summary>Convert the given Action delegate object to an F #function value< / summary>
1557+ /// < param name = "func "> The input Action delegate.< / param>
1558+ /// < returns>The F #function.< / returns>
1559+ static member inline FromAction : action : Action<'T1 , 'T2 , 'T3 , 'T4> -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> unit )
1560+
1561+ /// < summary>Convert the given Action delegate object to an F #function value< / summary>
1562+ /// < param name = "func "> The input Action delegate.< / param>
1563+ /// < returns>The F #function.< / returns>
1564+ static member inline FromAction : action : Action<'T1 , 'T2 , 'T3 , 'T4 , 'T5> -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'T5 -> unit )
1565+
1566+ /// < summary>Convert the given Func delegate object to an F #function value< / summary>
1567+ /// < param name = "func "> The input Func delegate.< / param>
1568+ /// < returns>The F #function.< / returns>
1569+ static member inline FromFunc : func : Func<'T> -> ( unit -> 'T )
1570+
1571+ /// < summary>Convert the given Func delegate object to an F #function value< / summary>
1572+ /// < param name = "func "> The input Func delegate.< / param>
1573+ /// < returns>The F #function.< / returns>
1574+ static member inline FromFunc : func : Func<'T , 'U> -> ( 'T -> 'U )
1575+
1576+ /// < summary>Convert the given Func delegate object to an F #function value< / summary>
1577+ /// < param name = "func "> The input Func delegate.< / param>
1578+ /// < returns>The F #funcfunction.< / returns>
1579+ static member inline FromFunc : func : Func<'T1 , 'T2 , 'U> -> ( 'T1 -> 'T2 -> 'U )
1580+
1581+ /// < summary>Convert the given Func delegate object to an F #function value< / summary>
1582+ /// < param name = "func "> The input Func delegate.< / param>
1583+ /// < returns>The F #function.< / returns>
1584+ static member inline FromFunc : func : Func<'T1 , 'T2 , 'T3 , 'U> -> ( 'T1 -> 'T2 -> 'T3 -> 'U )
1585+
1586+ /// < summary>Convert the given Func delegate object to an F #function value< / summary>
1587+ /// < param name = "func "> The input Func delegate.< / param>
1588+ /// < returns>The F #function.< / returns>
1589+ static member inline FromFunc : func : Func<'T1 , 'T2 , 'T3 , 'T4 , 'U> -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'U )
1590+
1591+ /// < summary>Convert the given Func delegate object to an F #function value< / summary>
1592+ /// < param name = "func "> The input Func delegate.< / param>
1593+ /// < returns>The F #function.< / returns>
1594+ static member inline FromFunc : func : Func<'T1 , 'T2 , 'T3 , 'T4 , 'T5 , 'U> -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'T5 -> 'U )
1595+
15341596/// < summary>A utility function to convert function values from tupled to curried form< / summary>
15351597/// < param name = "func "> The input tupled function.< / param>
15361598/// < returns>The output curried function.< / returns>
1537- static member FuncFromTupled : func :( 'T1 * 'T2 -> 'U ) -> ( 'T1 -> 'T2 -> 'U )
1599+ static memberinline FuncFromTupled : func :( 'T1 * 'T2 -> 'U ) -> ( 'T1 -> 'T2 -> 'U )
15381600
15391601/// < summary>A utility function to convert function values from tupled to curried form< / summary>
15401602/// < param name = "func "> The input tupled function.< / param>
15411603/// < returns>The output curried function.< / returns>
1542- static member FuncFromTupled : func :( 'T1 * 'T2 * 'T3 -> 'U ) -> ( 'T1 -> 'T2 -> 'T3 -> 'U )
1604+ static memberinline FuncFromTupled : func :( 'T1 * 'T2 * 'T3 -> 'U ) -> ( 'T1 -> 'T2 -> 'T3 -> 'U )
15431605
15441606/// < summary>A utility function to convert function values from tupled to curried form< / summary>
15451607/// < param name = "func "> The input tupled function.< / param>
15461608/// < returns>The output curried function.< / returns>
1547- static member FuncFromTupled : func :( 'T1 * 'T2 * 'T3 * 'T4 -> 'U ) -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'U )
1609+ static memberinline FuncFromTupled : func :( 'T1 * 'T2 * 'T3 * 'T4 -> 'U ) -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'U )
15481610
15491611/// < summary>A utility function to convert function values from tupled to curried form< / summary>
15501612/// < param name = "func "> The input tupled function.< / param>
15511613/// < returns>The output curried function.< / returns>
1552- static member FuncFromTupled : func :( 'T1 * 'T2 * 'T3 * 'T4 * 'T5 -> 'U ) -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'T5 -> 'U )
1614+ static memberinline FuncFromTupled : func :( 'T1 * 'T2 * 'T3 * 'T4 * 'T5 -> 'U ) -> ( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'T5 -> 'U )
15531615
15541616/// < summary>An implementation module used to hold some private implementations of function
15551617/// value invocation.< / summary>
@@ -1584,6 +1646,7 @@ namespace Microsoft.FSharp.Core
15841646/// typically used directly from either F #code or from other CLI languages.< / summary>
15851647[< AbstractClass> ]
15861648type FSharpFunc<'T1 , 'T2 , 'T3 , 'U> =
1649+
15871650inherit FSharpFunc<'T1 ,( 'T2 -> 'T3 -> 'U )>
15881651
15891652/// < summary>Invoke an F #first class function value that accepts three curried arguments
@@ -1626,6 +1689,7 @@ namespace Microsoft.FSharp.Core
16261689/// < param name = "func "> The input function.< / param>
16271690/// < returns>The optimized function.< / returns>
16281691static member Adapt : func :( 'T1 -> 'T2 -> 'T3 -> 'T4 -> 'U ) -> FSharpFunc<'T1 , 'T2 , 'T3 , 'T4 , 'U>
1692+
16291693/// < summary>Construct an optimized function value that can accept four curried
16301694/// arguments without intervening execution.< / summary>
16311695/// < returns>The optimized function.< / returns>
@@ -3204,6 +3268,7 @@ namespace Microsoft.FSharp.Control
32043268module LazyExtensions =
32053269
32063270type System.Lazy<'T> with
3271+
32073272/// < summary>Creates a lazy computation that evaluates to the result of the given function when forced.< / summary>
32083273/// < param name = "creator "> The function to provide the value when needed.< / param>
32093274/// < returns>The created Lazy object.< / returns>