diff --git a/src/absil/ilnativeres.fs b/src/absil/ilnativeres.fs
index 53321b9eef3..96cff415130 100644
--- a/src/absil/ilnativeres.fs
+++ b/src/absil/ilnativeres.fs
@@ -279,8 +279,10 @@ type VersionHelper() =
///
/// Parses a version string of the form "major [ '.' minor [ '.' build [ '.' revision ] ] ]".
///
+ ///
/// The version string to parse.
/// If parsing succeeds, the parsed version. Otherwise a version that represents as much of the input as could be parsed successfully.
+ ///
/// True when parsing succeeds completely (i.e. every character in the string was consumed), false otherwise.
static member TryParse(s: string, [] version: byref) =
VersionHelper.TryParse (s, false, UInt16.MaxValue, true, ref version)
@@ -289,12 +291,14 @@ type VersionHelper() =
/// Parses a version string of the form "major [ '.' minor [ '.' ( '*' | ( build [ '.' ( '*' | revision ) ] ) ) ] ]"
/// as accepted by System.Reflection.AssemblyVersionAttribute.
///
+ ///
/// The version string to parse.
/// Indicates whether or not a wildcard is accepted as the terminal component.
///
/// If parsing succeeded, the parsed version. Otherwise a version instance with all parts set to zero.
/// If contains * the version build and/or revision numbers are set to .
///
+ ///
/// True when parsing succeeds completely (i.e. every character in the string was consumed), false otherwise.
static member TryParseAssemblyVersion (s: string, allowWildcard: bool, [] version: byref) =
@@ -306,6 +310,7 @@ type VersionHelper() =
/// Parses a version string of the form "major [ '.' minor [ '.' ( '*' | ( build [ '.' ( '*' | revision ) ] ) ) ] ]"
/// as accepted by System.Reflection.AssemblyVersionAttribute.
///
+ ///
/// The version string to parse.
/// Indicates whether or not we're parsing an assembly version string. If so, wildcards are accepted and each component must be less than 65535.
/// The maximum value that a version component may have.
@@ -314,6 +319,7 @@ type VersionHelper() =
/// If parsing succeeded, the parsed version. When is true a version with values up to the first invalid character set. Otherwise a version with all parts set to zero.
/// If contains * and wildcard is allowed the version build and/or revision numbers are set to .
///
+ ///
/// True when parsing succeeds completely (i.e. every character in the string was consumed), false otherwise.
static member private TryParse(s: string, allowWildcard: bool, maxValue: uint16, allowPartialParse: bool, [] version: byref) =
Debug.Assert (not allowWildcard || maxValue < UInt16.MaxValue)
diff --git a/src/fsharp/FSharp.Core/Nullable.fsi b/src/fsharp/FSharp.Core/Nullable.fsi
index 777aecdc7ab..0b18896ef8c 100644
--- a/src/fsharp/FSharp.Core/Nullable.fsi
+++ b/src/fsharp/FSharp.Core/Nullable.fsi
@@ -117,6 +117,7 @@ module Nullable =
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
/// The input value.
+ ///
/// The converted byte
[]
val inline byte : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> byte) and default ^T : int
@@ -124,7 +125,9 @@ module Nullable =
/// Converts the argument to byte. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted byte
[]
val inline uint8 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> uint8) and default ^T : int
@@ -132,7 +135,9 @@ module Nullable =
/// Converts the argument to signed byte. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted sbyte
[]
val inline sbyte : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> sbyte) and default ^T : int
@@ -140,7 +145,9 @@ module Nullable =
/// Converts the argument to signed byte. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted sbyte
[]
val inline int8 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> int8) and default ^T : int
@@ -148,7 +155,9 @@ module Nullable =
/// Converts the argument to signed 16-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted int16
[]
val inline int16 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> int16) and default ^T : int
@@ -156,7 +165,9 @@ module Nullable =
/// Converts the argument to unsigned 16-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted uint16
[]
val inline uint16 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> uint16) and default ^T : int
@@ -164,7 +175,9 @@ module Nullable =
/// Converts the argument to signed 32-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted int
[]
val inline int : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> int) and default ^T : int
@@ -172,13 +185,17 @@ module Nullable =
/// Converts the argument to an unsigned 32-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted unsigned integer
[]
val inline uint: value: Nullable< ^T > -> Nullable when ^T :(static member op_Explicit: ^T -> uint) and default ^T : uint
/// Converts the argument to a particular enum type.
+ ///
/// The input value.
+ ///
/// The converted enum type.
[]
val inline enum : value:Nullable< int32 > -> Nullable< ^U > when ^U : enum
@@ -186,7 +203,9 @@ module Nullable =
/// Converts the argument to signed 32-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted int32
[]
val inline int32 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> int32) and default ^T : int
@@ -194,7 +213,9 @@ module Nullable =
/// Converts the argument to unsigned 32-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted uint32
[]
val inline uint32 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> uint32) and default ^T : int
@@ -202,7 +223,9 @@ module Nullable =
/// Converts the argument to signed 64-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted int64
[]
val inline int64 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> int64) and default ^T : int
@@ -210,7 +233,9 @@ module Nullable =
/// Converts the argument to unsigned 64-bit integer. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted uint64
[]
val inline uint64 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> uint64) and default ^T : int
@@ -218,7 +243,9 @@ module Nullable =
/// Converts the argument to 32-bit float. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted float32
[]
val inline float32 : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> float32) and default ^T : int
@@ -226,7 +253,9 @@ module Nullable =
/// Converts the argument to 64-bit float. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted float
[]
val inline float : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> float) and default ^T : int
@@ -234,7 +263,9 @@ module Nullable =
/// Converts the argument to 32-bit float. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted float32
[]
val inline single : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> single) and default ^T : int
@@ -242,7 +273,9 @@ module Nullable =
/// Converts the argument to 64-bit float. This is a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted float
[]
val inline double : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> double) and default ^T : int
@@ -250,7 +283,9 @@ module Nullable =
/// Converts the argument to signed native integer. This is a direct conversion for all
/// primitive numeric types. Otherwise the operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted nativeint
[]
val inline nativeint : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> nativeint) and default ^T : int
@@ -258,7 +293,9 @@ module Nullable =
/// Converts the argument to unsigned native integer using a direct conversion for all
/// primitive numeric types. Otherwise the operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted unativeint
[]
val inline unativeint : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> unativeint) and default ^T : int
@@ -266,14 +303,18 @@ module Nullable =
/// Converts the argument to System.Decimal using a direct conversion for all
/// primitive numeric types. The operation requires an appropriate
/// static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted decimal.
[]
val inline decimal : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> decimal) and default ^T : int
/// Converts the argument to character. Numeric inputs are converted according to the UTF-16
/// encoding for characters. The operation requires an appropriate static conversion method on the input type.
+ ///
/// The input value.
+ ///
/// The converted char.
[]
val inline char : value:Nullable< ^T > -> Nullable when ^T : (static member op_Explicit : ^T -> char) and default ^T : int
diff --git a/src/fsharp/FSharp.Core/array.fsi b/src/fsharp/FSharp.Core/array.fsi
index 5ede87a3c6d..2ae5facdbca 100644
--- a/src/fsharp/FSharp.Core/array.fsi
+++ b/src/fsharp/FSharp.Core/array.fsi
@@ -13,26 +13,35 @@ namespace Microsoft.FSharp.Collections
module Array =
/// Returns a new array that contains all pairings of elements from the first and second arrays.
+ ///
/// The first input array.
/// The second input array.
- /// Thrown when either of the input arrays is null.
+ ///
+ /// Thrown when either of the input arrays is null.
+ ///
/// The resulting array of pairs.
[]
val allPairs: array1:'T1[] -> array2:'T2[] -> ('T1 * 'T2)[]
/// Builds a new array that contains the elements of the first array followed by the elements of the second array.
+ ///
/// The first input array.
/// The second input array.
+ ///
/// The resulting array.
- /// Thrown when either of the input arrays is null.
+ ///
+ /// Thrown when either of the input arrays is null.
[]
val append: array1:'T[] -> array2:'T[] -> 'T[]
/// Returns the average of the elements in the array.
+ ///
/// The input array.
- /// Thrown when array is empty.
+ ///
+ /// Thrown when array is empty.
+ /// Thrown when the input array is null.
+ ///
/// The average of the elements in the array.
- /// Thrown when the input array is null.
[]
val inline average : array:^T[] -> ^T
when ^T : (static member ( + ) : ^T * ^T -> ^T)
@@ -41,11 +50,15 @@ namespace Microsoft.FSharp.Collections
/// Returns the average of the elements generated by applying the function to each element of the array.
+ ///
/// The function to transform the array elements before averaging.
/// The input array.
- /// Thrown when array is empty.
+ ///
+ /// Thrown when array is empty.
+ ///
/// The computed average.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val inline averageBy : projection:('T -> ^U) -> array:'T[] -> ^U
when ^U : (static member ( + ) : ^U * ^U -> ^U)
@@ -53,22 +66,27 @@ namespace Microsoft.FSharp.Collections
and ^U : (static member Zero : ^U)
/// Reads a range of elements from the first array and write them into the second.
+ ///
/// The source array.
/// The starting index of the source array.
/// The target array.
/// The starting index of the target array.
/// The number of elements to copy.
- /// Thrown when either of the input arrays is null.
- /// Thrown when any of sourceIndex, targetIndex or count are negative,
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when any of sourceIndex, targetIndex or count are negative,
/// or when there aren't enough elements in source or target.
[]
val inline blit: source:'T[] -> sourceIndex:int -> target:'T[] -> targetIndex:int -> count:int -> unit
/// For each element of the array, applies the given function. Concatenates all the results and return the combined array.
+ ///
/// The function to create sub-arrays from the input array elements.
/// The input array.
+ ///
/// The concatenation of the sub-arrays.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val collect : mapping:('T -> 'U[]) -> array:'T[] -> 'U[]
@@ -85,30 +103,39 @@ namespace Microsoft.FSharp.Collections
/// arrays, 1 is returned if the first array is longer, 0 is returned if they are equal in
/// length, and -1 is returned when the second array is longer.
///
- /// Thrown when either of the input arrays
+ /// Thrown when either of the input arrays
/// is null.
[]
val inline compareWith: comparer:('T -> 'T -> int) -> array1:'T[] -> array2:'T[] -> int
/// Builds a new array that contains the elements of each of the given sequence of arrays.
+ ///
/// The input sequence of arrays.
+ ///
/// The concatenation of the sequence of input arrays.
- /// Thrown when the input sequence is null.
+ ///
+ /// Thrown when the input sequence is null.
[]
val concat: arrays:seq<'T[]> -> 'T[]
/// Tests if the array contains the specified element.
+ ///
/// The value to locate in the input array.
/// The input array.
+ ///
/// True if the input array contains the specified element; false otherwise.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val inline contains: value:'T -> array:'T[] -> bool when 'T : equality
/// Builds a new array that contains the elements of the given array.
+ ///
/// The input array.
+ ///
/// A copy of the input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val copy: array:'T[] -> 'T[]
@@ -121,22 +148,28 @@ namespace Microsoft.FSharp.Collections
///
/// The result array.
///
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
[]
val countBy : projection:('T -> 'Key) -> array:'T[] -> ('Key * int)[] when 'Key : equality
/// Creates an array whose elements are all initially the given value.
+ ///
/// The length of the array to create.
/// The value for the elements.
+ ///
/// The created array.
- /// Thrown when count is negative.
+ ///
+ /// Thrown when count is negative.
[]
val create: count:int -> value:'T -> 'T[]
/// Returns the first element of the array, or
/// None if the array is empty.
+ ///
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
+ ///
/// The first element of the array or None.
[]
val tryHead: array:'T[] -> 'T option
@@ -144,31 +177,39 @@ namespace Microsoft.FSharp.Collections
/// Applies the given function to successive elements, returning the first
/// result where function returns Some(x) for some x. If the function
/// never returns Some(x) then None is returned.
+ ///
/// The function to transform the array elements into options.
/// The input array.
+ ///
/// The first transformed element that is Some(x).
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val tryPick: chooser:('T -> 'U option) -> array:'T[] -> 'U option
/// Fills a range of elements of the array with the given value.
+ ///
/// The target array.
/// The index of the first element to set.
/// The number of elements to set.
/// The value to set.
- /// Thrown when the input array is null.
- /// Thrown when either targetIndex or count is negative.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when either targetIndex or count is negative.
[]
val fill: target:'T[] -> targetIndex:int -> count:int -> value:'T -> unit
/// Applies the given function to successive elements, returning the first
/// result where function returns Some(x) for some x. If the function
- /// never returns Some(x) then KeyNotFoundException is raised.
+ /// never returns Some(x) then is raised.
+ ///
/// The function to generate options from the elements.
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown if every result from
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown if every result from
/// chooser is None.
+ ///
/// The first result.
[]
val pick: chooser:('T -> 'U option) -> array:'T[] -> 'U
@@ -176,19 +217,25 @@ namespace Microsoft.FSharp.Collections
/// 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)
+ ///
/// The function to generate options from the elements.
/// The input array.
+ ///
/// The array of results.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val choose: chooser:('T -> 'U option) -> array:'T[] -> 'U[]
/// Divides the input array into chunks of size at most chunkSize.
+ ///
/// The maximum size of each chunk.
/// The input array.
+ ///
/// The array divided into chunks.
- /// Thrown when the input array is null.
- /// Thrown when chunkSize is not positive.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when chunkSize is not positive.
[]
val chunkBySize: chunkSize:int -> array:'T[] -> 'T[][]
@@ -200,7 +247,7 @@ namespace Microsoft.FSharp.Collections
///
/// The result array.
///
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
[]
val distinct: array:'T[] -> 'T[] when 'T : equality
@@ -213,16 +260,19 @@ namespace Microsoft.FSharp.Collections
///
/// The result array.
///
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
[]
val distinctBy: projection:('T -> 'Key) -> array:'T[] -> 'T[] when 'Key : equality
/// Splits the input array into at most count chunks.
+ ///
/// The maximum number of chunks.
/// The input array.
+ ///
/// The array split into chunks.
- /// Thrown when the input array is null.
- /// Thrown when count is not positive.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when count is not positive.
[]
val splitInto: count:int -> array:'T[] -> 'T[][]
@@ -238,8 +288,8 @@ namespace Microsoft.FSharp.Collections
///
/// The only element of the array.
///
- /// Thrown when the input array is null.
- /// Thrown when the input does not have precisely one element.
+ /// Thrown when the input array is null.
+ /// Thrown when the input does not have precisely one element.
[]
val exactlyOne: array:'T[] -> 'T
@@ -249,7 +299,7 @@ namespace Microsoft.FSharp.Collections
///
/// The only element of the array or None.
///
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
[]
val tryExactlyOne: array:'T[] -> 'T option
@@ -262,7 +312,7 @@ namespace Microsoft.FSharp.Collections
///
/// An array that contains the distinct elements of array that do not appear in itemsToExclude.
///
- /// Thrown when either itemsToExclude or array is null.
+ /// Thrown when either itemsToExclude or array is null.
[]
val except: itemsToExclude:seq<'T> -> array:'T[] -> 'T[] when 'T : equality
@@ -271,10 +321,13 @@ namespace Microsoft.FSharp.Collections
/// 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.
+ ///
/// The function to test the input elements.
/// The input array.
+ ///
/// True if any result from predicate is true.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val exists: predicate:('T -> bool) -> array:'T[] -> bool
@@ -285,66 +338,84 @@ namespace Microsoft.FSharp.Collections
/// true and no further elements are tested. Otherwise, if one collections is longer
/// than the other then the ArgumentException exception is raised.
/// Otherwise, false is returned.
+ ///
/// The function to test the input elements.
/// The first input array.
/// The second input array.
+ ///
/// True if any result from predicate is true.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
[]
val exists2: predicate:('T1 -> 'T2 -> bool) -> array1:'T1[] -> array2:'T2[] -> bool
/// Returns a new collection containing only the elements of the collection
/// for which the given predicate returns "true".
+ ///
/// The function to test the input elements.
/// The input array.
+ ///
/// An array containing the elements for which the given predicate returns true.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val filter: predicate:('T -> bool) -> array:'T[] -> 'T[]
/// Returns the first element for which the given function returns 'true'.
- /// Raise KeyNotFoundException if no such element exists.
+ /// Raise if no such element exists.
+ ///
/// The function to test the input elements.
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown if predicate
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown if predicate
/// never returns true.
+ ///
/// The first element for which predicate returns true.
[]
val find: predicate:('T -> bool) -> array:'T[] -> 'T
/// Returns the last element for which the given function returns 'true'.
- /// Raise KeyNotFoundException if no such element exists.
+ /// Raise if no such element exists.
+ ///
/// The function to test the input elements.
/// The input array.
- /// Thrown if predicate
+ ///
+ /// Thrown if predicate
/// never returns true.
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
+ ///
/// The last element for which predicate returns true.
[]
val findBack: predicate:('T -> bool) -> array:'T[] -> 'T
/// Returns the index of the first element in the array
- /// that satisfies the given predicate. Raise KeyNotFoundException if
+ /// that satisfies the given predicate. Raise if
/// none of the elements satisfy the predicate.
+ ///
/// The function to test the input elements.
/// The input array.
- /// Thrown if predicate
+ ///
+ /// Thrown if predicate
/// never returns true.
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
+ ///
/// The index of the first element in the array that satisfies the given predicate.
[]
val findIndex: predicate:('T -> bool) -> array:'T[] -> int
/// Returns the index of the last element in the array
- /// that satisfies the given predicate. Raise KeyNotFoundException if
+ /// that satisfies the given predicate. Raise if
/// none of the elements satisfy the predicate.
+ ///
/// The function to test the input elements.
/// The input array.
- /// Thrown if predicate
+ ///
+ /// Thrown if predicate
/// never returns true.
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
+ ///
/// The index of the last element in the array that satisfies the given predicate.
[]
val findIndexBack: predicate:('T -> bool) -> array:'T[] -> int
@@ -354,10 +425,13 @@ namespace Microsoft.FSharp.Collections
/// 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.
+ ///
/// The function to test the input elements.
/// The input array.
+ ///
/// True if all of the array elements satisfy the predicate.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val forall: predicate:('T -> bool) -> array:'T[] -> bool
@@ -369,11 +443,14 @@ namespace Microsoft.FSharp.Collections
/// false and no further elements are tested. Otherwise, if one collection is longer
/// than the other then the ArgumentException exception is raised.
/// Otherwise, true is returned.
+ ///
/// The function to test the input elements.
/// The first input array.
/// The second input array.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
+ ///
/// True if all of the array elements satisfy the predicate.
[]
val forall2: predicate:('T1 -> 'T2 -> bool) -> array1:'T1[] -> array2:'T2[] -> bool
@@ -381,22 +458,28 @@ namespace Microsoft.FSharp.Collections
/// Applies a function to each element of the collection, threading an accumulator argument
/// through the computation. If the input function is f and the elements are i0...iN then computes
/// f (... (f s i0)...) iN
+ ///
/// The function to update the state given the input elements.
/// The initial state.
/// The input array.
+ ///
/// The final state.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val fold<'T,'State> : folder:('State -> 'T -> 'State) -> state:'State -> array: 'T[] -> 'State
/// Applies a function to each element of the array, starting from the end, threading an accumulator argument
/// through the computation. If the input function is f and the elements are i0...iN then computes
/// f i0 (...(f iN s))
+ ///
/// The function to update the state given the input elements.
/// The input array.
/// The initial state.
+ ///
/// The state object after the folding function is applied to each element of the array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val foldBack<'T,'State> : folder:('T -> 'State -> 'State) -> array:'T[] -> state:'State -> 'State
@@ -405,12 +488,15 @@ namespace Microsoft.FSharp.Collections
/// through the computation. The two input
/// arrays must have the same lengths, otherwise an ArgumentException is
/// raised.
+ ///
/// The function to update the state given the input elements.
/// The initial state.
/// The first input array.
/// The second input array.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
+ ///
/// The final state.
[]
val fold2<'T1,'T2,'State> : folder:('State -> 'T1 -> 'T2 -> 'State) -> state:'State -> array1:'T1[] -> array2:'T2[] -> 'State
@@ -419,22 +505,28 @@ namespace Microsoft.FSharp.Collections
/// threading an accumulator argument through the computation. The two input
/// arrays must have the same lengths, otherwise an ArgumentException is
/// raised.
+ ///
/// The function to update the state given the input elements.
/// The first input array.
/// The second input array.
/// The initial state.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
+ ///
/// The final state.
[]
val foldBack2<'T1,'T2,'State> : folder:('T1 -> 'T2 -> 'State -> 'State) -> array1:'T1[] -> array2:'T2[] -> state:'State -> 'State
/// Gets an element from an array.
+ ///
/// The input array.
/// The input index.
+ ///
/// The value of the array at the given index.
- /// Thrown when the input array is null.
- /// Thrown when the index is negative or the input array does not contain enough elements.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the index is negative or the input array does not contain enough elements.
[]
val get: array:'T[] -> index:int -> 'T
@@ -444,8 +536,8 @@ namespace Microsoft.FSharp.Collections
///
/// The first element of the array.
///
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
[]
val head: array:'T[] -> 'T
@@ -458,115 +550,150 @@ namespace Microsoft.FSharp.Collections
///
/// The result array.
///
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
[]
val groupBy : projection:('T -> 'Key) -> array:'T[] -> ('Key * 'T[])[] when 'Key : equality
/// Builds a new array whose elements are the corresponding elements of the input array
/// paired with the integer index (from 0) of each element.
+ ///
/// The input array.
+ ///
/// The array of indexed elements.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val indexed: array:'T[] -> (int * 'T)[]
/// Creates an array given the dimension and a generator function to compute the elements.
+ ///
/// The number of elements to initialize.
/// The function to generate the initial values for each index.
+ ///
/// The created array.
- /// Thrown when count is negative.
+ ///
+ /// Thrown when count is negative.
[]
val inline init: count:int -> initializer:(int -> 'T) -> 'T[]
/// Creates an array where the entries are initially the default value Unchecked.defaultof<'T>.
+ ///
/// The length of the array to create.
+ ///
/// The created array.
- /// Thrown when count is negative.
+ ///
+ /// Thrown when count is negative.
[]
val zeroCreate: count:int -> 'T[]
/// Returns true if the given array is empty, otherwise false.
+ ///
/// The input array.
+ ///
/// True if the array is empty.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val isEmpty: array:'T[] -> bool
/// Applies the given function to each element of the array.
+ ///
/// The function to apply.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val inline iter: action:('T -> unit) -> array:'T[] -> unit
/// 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 ArgumentException is
/// raised.
+ ///
/// The function to apply.
/// The first input array.
/// The second input array.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
[]
val iter2: action:('T1 -> 'T2 -> unit) -> array1:'T1[] -> array2:'T2[] -> unit
/// Applies the given function to each element of the array. The integer passed to the
/// function indicates the index of element.
+ ///
/// The function to apply to each index and element.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val iteri: action:(int -> 'T -> unit) -> array:'T[] -> unit
/// 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 ArgumentException is raised.
+ ///
/// The function to apply to each index and pair of elements.
/// The first input array.
/// The second input array.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
[]
val iteri2: action:(int -> 'T1 -> 'T2 -> unit) -> array1:'T1[] -> array2:'T2[] -> unit
/// Returns the last element of the array.
+ ///
/// The input array.
+ ///
/// The last element of the array.
- /// Thrown when the input array is null.
- /// Thrown when the input does not have any elements.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the input does not have any elements.
[]
val inline last: array:'T[] -> 'T
/// Gets an element from an array.
+ ///
/// The input index.
/// The input array.
+ ///
/// The value of the array at the given index.
- /// Thrown when the input array is null.
- /// Thrown when the index is negative or the input array does not contain enough elements.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the index is negative or the input array does not contain enough elements.
[]
val item: index:int -> array:'T[] -> 'T
/// Returns the length of an array. You can also use property arr.Length.
+ ///
/// The input array.
+ ///
/// The length of the array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val length: array:'T[] -> int
/// Returns the last element of the array.
/// Return None if no such element exists.
+ ///
/// The input array.
+ ///
/// The last element of the array or None.
- /// Thrown when the input sequence is null.
+ ///
+ /// Thrown when the input sequence is null.
[]
val tryLast: array:'T[] -> 'T option
/// Builds a new array whose elements are the results of applying the given function
/// to each of the elements of the array.
+ ///
/// The function to transform elements of the array.
/// The input array.
+ ///
/// The array of transformed elements.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val inline map: mapping:('T -> 'U) -> array:'T[] -> 'U[]
@@ -574,31 +701,40 @@ namespace Microsoft.FSharp.Collections
/// to the corresponding elements of the two collections pairwise. The two input
/// arrays must have the same lengths, otherwise an ArgumentException is
/// raised.
+ ///
/// The function to transform the pairs of the input elements.
/// The first input array.
/// The second input array.
- /// Thrown when the input arrays differ in length.
- /// Thrown when either of the input arrays is null.
+ ///
+ /// Thrown when the input arrays differ in length.
+ /// Thrown when either of the input arrays is null.
+ ///
/// The array of transformed elements.
[]
val map2: mapping:('T1 -> 'T2 -> 'U) -> array1:'T1[] -> array2:'T2[] -> 'U[]
/// Combines map and fold. Builds a new array whose elements are the results of applying the given function
/// to each of the elements of the input array. The function is also used to accumulate a final value.
+ ///
/// The function to transform elements from the input array and accumulate the final value.
/// The initial state.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
+ ///
/// The array of transformed elements, and the final accumulated value.
[]
val mapFold<'T,'State,'Result> : mapping:('State -> 'T -> 'Result * 'State) -> state:'State -> array:'T[] -> 'Result[] * 'State
/// Combines map and foldBack. Builds a new array whose elements are the results of applying the given function
/// to each of the elements of the input array. The function is also used to accumulate a final value.
+ ///
/// The function to transform elements from the input array and accumulate the final value.
/// The input array.
/// The initial state.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
+ ///
/// The array of transformed elements, and the final accumulated value.
[]
val mapFoldBack<'T,'State,'Result> : mapping:('T -> 'State -> 'Result * 'State) -> array:'T[] -> state:'State -> 'Result[] * 'State
@@ -607,12 +743,15 @@ namespace Microsoft.FSharp.Collections
/// to the corresponding triples from the three collections. The three input
/// arrays must have the same length, otherwise an ArgumentException is
/// raised.
+ ///
/// The function to transform the pairs of the input elements.
/// The first input array.
/// The second input array.
/// The third input array.
- /// Thrown when the input arrays differ in length.
- /// Thrown when any of the input arrays is null.
+ ///
+ /// Thrown when the input arrays differ in length.
+ /// Thrown when any of the input arrays is null.
+ ///
/// The array of transformed elements.
[]
val map3: mapping:('T1 -> 'T2 -> 'T3 -> 'U) -> array1:'T1[] -> array2:'T2[] -> array3:'T3[] -> 'U[]
@@ -621,11 +760,14 @@ namespace Microsoft.FSharp.Collections
/// 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 ArgumentException is
/// raised.
+ ///
/// The function to transform pairs of input elements and their indices.
/// The first input array.
/// The second input array.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
+ ///
/// The array of transformed elements.
[]
val mapi2: mapping:(int -> 'T1 -> 'T2 -> 'U) -> array1:'T1[] -> array2:'T2[] -> 'U[]
@@ -633,19 +775,25 @@ namespace Microsoft.FSharp.Collections
/// 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.
+ ///
/// The function to transform elements and their indices.
/// The input array.
+ ///
/// The array of transformed elements.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val mapi: mapping:(int -> 'T -> 'U) -> array:'T[] -> 'U[]
/// Returns the greatest of all elements of the array, compared via Operators.max on the function result.
///
/// Throws ArgumentException for empty arrays.
+ ///
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
+ ///
/// The maximum element.
[]
val inline max : array:'T[] -> 'T when 'T : comparison
@@ -653,10 +801,13 @@ namespace Microsoft.FSharp.Collections
/// Returns the greatest of all elements of the array, compared via Operators.max on the function result.
///
/// Throws ArgumentException for empty arrays.
+ ///
/// The function to transform the elements into a type supporting comparison.
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
+ ///
/// The maximum element.
[]
val inline maxBy : projection:('T -> 'U) -> array:'T[] -> 'T when 'U : comparison
@@ -664,9 +815,12 @@ namespace Microsoft.FSharp.Collections
/// Returns the lowest of all elements of the array, compared via Operators.min.
///
/// Throws ArgumentException for empty arrays
+ ///
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
+ ///
/// The minimum element.
[]
val inline min : array:'T[] -> 'T when 'T : comparison
@@ -674,24 +828,32 @@ namespace Microsoft.FSharp.Collections
/// Returns the lowest of all elements of the array, compared via Operators.min on the function result.
///
/// Throws ArgumentException for empty arrays.
+ ///
/// The function to transform the elements into a type supporting comparison.
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
+ ///
/// The minimum element.
[]
val inline minBy : projection:('T -> 'U) -> array:'T[] -> 'T when 'U : comparison
/// Builds an array from the given list.
+ ///
/// The input list.
+ ///
/// The array of elements from the list.
[]
val ofList: list:'T list -> 'T[]
/// Builds a new array from the given enumerable object.
+ ///
/// The input sequence.
+ ///
/// The array of elements from the sequence.
- /// Thrown when the input sequence is null.
+ ///
+ /// Thrown when the input sequence is null.
[]
val ofSeq: source:seq<'T> -> 'T[]
@@ -702,28 +864,34 @@ namespace Microsoft.FSharp.Collections
///
/// The result array.
///
- /// Thrown when the input sequence is null.
+ /// Thrown when the input sequence is null.
[]
val pairwise: array:'T[] -> ('T * 'T)[]
/// Splits the collection into two collections, containing the
/// elements for which the given predicate returns "true" and "false"
/// respectively.
+ ///
/// The function to test the input elements.
/// The input array.
+ ///
/// A pair of arrays. The first containing the elements the predicate evaluated to true,
/// and the second containing those evaluated to false.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val partition: predicate:('T -> bool) -> array:'T[] -> 'T[] * 'T[]
/// Returns an array with all elements permuted according to the
/// specified permutation.
+ ///
/// The function that maps input indices to output indices.
/// The input array.
+ ///
/// The output array.
- /// Thrown when the input array is null.
- /// Thrown when indexMap does not produce a valid permutation.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when indexMap does not produce a valid permutation.
[]
val permute : indexMap:(int -> int) -> array:'T[] -> 'T[]
@@ -731,10 +899,13 @@ namespace Microsoft.FSharp.Collections
/// through the computation. If the input function is f and the elements are i0...iN
/// then computes f (... (f i0 i1)...) iN.
/// Raises ArgumentException if the array has size zero.
+ ///
/// The function to reduce a pair of elements to a single element.
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
+ ///
/// The final result of the reductions.
[]
val reduce: reduction:('T -> 'T -> 'T) -> array:'T[] -> 'T
@@ -742,45 +913,60 @@ namespace Microsoft.FSharp.Collections
/// Applies a function to each element of the array, starting from the end, threading an accumulator argument
/// through the computation. If the input function is f and the elements are i0...iN
/// then computes f i0 (...(f iN-1 iN)).
+ ///
/// A function that takes in the next-to-last element of the list and the
/// current accumulated result to produce the next accumulated result.
/// The input array.
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
+ ///
/// The final result of the reductions.
[]
val reduceBack: reduction:('T -> 'T -> 'T) -> array:'T[] -> 'T
/// Creates an array by replicating the given initial value.
+ ///
/// The number of elements to replicate.
/// The value to replicate
+ ///
/// The generated array.
- /// Thrown when count is negative.
+ ///
+ /// Thrown when count is negative.
[]
val replicate: count:int -> initial:'T -> 'T[]
/// Returns a new array with the elements in reverse order.
+ ///
/// The input array.
+ ///
/// The reversed array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val rev: array:'T[] -> 'T[]
/// Like fold, but return the intermediary and final results.
+ ///
/// The function to update the state given the input elements.
/// The initial state.
/// The input array.
+ ///
/// The array of state values.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val scan<'T,'State> : folder:('State -> 'T -> 'State) -> state:'State -> array:'T[] -> 'State[]
/// Like foldBack, but return both the intermediary and final results.
+ ///
/// The function to update the state given the input elements.
/// The input array.
/// The initial state.
+ ///
/// The array of state values.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val scanBack<'T,'State> : folder:('T -> 'State -> 'State) -> array:'T[] -> state:'State -> 'State[]
@@ -793,41 +979,52 @@ namespace Microsoft.FSharp.Collections
val inline singleton: value:'T -> 'T[]
/// Sets an element of an array.
+ ///
/// The input array.
/// The input index.
/// The input value.
- /// Thrown when the input array is null.
- /// Thrown when the index is negative or the input array does not contain enough elements.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when the index is negative or the input array does not contain enough elements.
[]
val set: array:'T[] -> index:int -> value:'T -> unit
/// Builds a new array that contains the elements of the given array, excluding the first N elements.
+ ///
/// The number of elements to skip.
/// The input array.
+ ///
/// A copy of the input array, after removing the first N elements.
- /// Thrown when the input array is null.
- /// Thrown when count is negative or exceeds the number of
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when count is negative or exceeds the number of
/// elements in the array.
[]
val skip: count:int -> array:'T[] -> 'T[]
/// Bypasses elements in an array while the given predicate returns True, and then returns
/// the remaining elements in a new array.
+ ///
/// A function that evaluates an element of the array to a boolean value.
/// The input array.
+ ///
/// The created sub array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val skipWhile: predicate:('T -> bool) -> array:'T[] -> 'T[]
/// Builds a new array that contains the given subrange specified by
/// starting index and length.
+ ///
/// The input array.
/// The index of the first element of the sub array.
/// The length of the sub array.
+ ///
/// The created sub array.
- /// Thrown when the input array is null.
- /// Thrown when either startIndex or count is negative,
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when either startIndex or count is negative,
/// or when there aren't enough elements in the input array.
[]
val sub: array:'T[] -> startIndex:int -> count:int -> 'T[]
@@ -836,9 +1033,12 @@ namespace Microsoft.FSharp.Collections
///
/// 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.
+ ///
/// The input array.
+ ///
/// The sorted array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val sort: array:'T[] -> 'T[] when 'T : comparison
@@ -847,10 +1047,13 @@ namespace Microsoft.FSharp.Collections
///
/// 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.
+ ///
/// The function to transform array elements into the type that is compared.
/// The input array.
+ ///
/// The sorted array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val sortBy: projection:('T -> 'Key) -> array:'T[] -> 'T[] when 'Key : comparison
@@ -858,10 +1061,13 @@ namespace Microsoft.FSharp.Collections
///
/// 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.
+ ///
/// The function to compare pairs of array elements.
/// The input array.
+ ///
/// The sorted array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val sortWith: comparer:('T -> 'T -> int) -> array:'T[] -> 'T[]
@@ -870,35 +1076,43 @@ namespace Microsoft.FSharp.Collections
///
/// 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.
+ ///
/// The function to transform array elements into the type that is compared.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val sortInPlaceBy: projection:('T -> 'Key) -> array:'T[] -> unit when 'Key : comparison
/// Sorts the elements of an array by mutating the array in-place, using the given comparison function as the order.
+ ///
/// The function to compare pairs of array elements.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val sortInPlaceWith: comparer:('T -> 'T -> int) -> array:'T[] -> unit
/// Sorts the elements of an array by mutating the array in-place, using the given comparison function.
/// Elements are compared using Operators.compare.
+ ///
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val sortInPlace: array:'T[] -> unit when 'T : comparison
/// Splits an array into two arrays, at the given index.
+ ///
/// The index at which the array is split.
/// The input array.
+ ///
/// The two split arrays.
///
- /// Thrown when the input array is null.
- /// Thrown when split index exceeds the number of elements
+ /// Thrown when the input array is null.
+ /// Thrown when split index exceeds the number of elements
/// in the array.
[]
val splitAt: index:int -> array:'T[] -> ('T[] * 'T[])
@@ -907,7 +1121,9 @@ namespace Microsoft.FSharp.Collections
///
/// 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.
+ ///
/// The input array.
+ ///
/// The sorted array.
[]
val inline sortDescending: array:'T[] -> 'T[] when 'T : comparison
@@ -917,16 +1133,21 @@ namespace Microsoft.FSharp.Collections
///
/// 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.
+ ///
/// The function to transform array elements into the type that is compared.
/// The input array.
+ ///
/// The sorted array.
[]
val inline sortByDescending: projection:('T -> 'Key) -> array:'T[] -> 'T[] when 'Key : comparison
/// Returns the sum of the elements in the array.
+ ///
/// The input array.
+ ///
/// The resulting sum.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val inline sum : array: ^T[] -> ^T
when ^T : (static member ( + ) : ^T * ^T -> ^T)
@@ -934,10 +1155,13 @@ namespace Microsoft.FSharp.Collections
/// Returns the sum of the results generated by applying the function to each element of the array.
+ ///
/// The function to transform the array elements into the type to be summed.
/// The input array.
+ ///
/// The resulting sum.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val inline sumBy : projection:('T -> ^U) -> array:'T[] -> ^U
when ^U : (static member ( + ) : ^U * ^U -> ^U)
@@ -953,9 +1177,9 @@ namespace Microsoft.FSharp.Collections
///
/// The result array.
///
- /// Thrown when the input array is null.
- /// Thrown when the input array is empty.
- /// Thrown when count exceeds the number of elements
+ /// Thrown when the input array is null.
+ /// Thrown when the input array is empty.
+ /// Thrown when count exceeds the number of elements
/// in the list.
[]
val take: count:int -> array:'T[] -> 'T[]
@@ -968,154 +1192,202 @@ namespace Microsoft.FSharp.Collections
///
/// The result array.
///
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
[]
val takeWhile: predicate:('T -> bool) -> array:'T[] -> 'T[]
/// Returns a new array containing the elements of the original except the first element.
///
/// The input array.
- /// Thrown when the array is empty.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the array is empty.
+ /// Thrown when the input array is null.
+ ///
/// A new array containing the elements of the original except the first element.
[]
val tail: array:'T[] -> 'T[]
/// Builds a list from the given array.
+ ///
/// The input array.
+ ///
/// The list of array elements.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val toList: array:'T[] -> 'T list
/// Views the given array as a sequence.
+ ///
/// The input array.
+ ///
/// The sequence of array elements.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val toSeq: array:'T[] -> seq<'T>
/// Returns the transpose of the given sequence of arrays.
+ ///
/// The input sequence of arrays.
+ ///
/// The transposed array.
- /// Thrown when the input sequence is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when the input sequence is null.
+ /// Thrown when the input arrays differ in length.
[]
val transpose: arrays:seq<'T[]> -> 'T[][]
/// Returns at most N elements in a new array.
+ ///
/// The maximum number of items to return.
/// The input array.
+ ///
/// The result array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val truncate: count:int -> array:'T[] -> 'T[]
/// Returns the first element for which the given function returns True.
/// Return None if no such element exists.
+ ///
/// The function to test the input elements.
/// The input array.
+ ///
/// The first element that satisfies the predicate, or None.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val tryFind: predicate:('T -> bool) -> array:'T[] -> 'T option
/// Returns the last element for which the given function returns True.
/// Return None if no such element exists.
+ ///
/// The function to test the input elements.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
+ ///
/// The last element that satisfies the predicate, or None.
[]
val tryFindBack: predicate:('T -> bool) -> array:'T[] -> 'T option
/// Returns the index of the first element in the array
/// that satisfies the given predicate.
+ ///
/// The function to test the input elements.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
+ ///
/// The index of the first element that satisfies the predicate, or None.
[]
val tryFindIndex : predicate:('T -> bool) -> array:'T[] -> int option
/// Tries to find the nth element in the array.
/// Returns None if index is negative or the input array does not contain enough elements.
+ ///
/// The index of element to retrieve.
/// The input array.
+ ///
/// The nth element of the array or None.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val tryItem: index:int -> array:'T[] -> 'T option
/// Returns the index of the last element in the array
/// that satisfies the given predicate.
+ ///
/// The function to test the input elements.
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
+ ///
/// The index of the last element that satisfies the predicate, or None.
[]
val tryFindIndexBack : predicate:('T -> bool) -> array:'T[] -> int option
/// Returns an array that contains the elements generated by the given computation.
/// The given initial state argument is passed to the element generator.
+ ///
/// A function that takes in the current state and returns an option tuple of the next
/// element of the array and the next state value.
/// The initial state value.
+ ///
/// The result array.
[]
val unfold<'T,'State> : generator:('State -> ('T * 'State) option) -> state:'State -> 'T[]
/// Splits an array of pairs into two arrays.
+ ///
/// The input array.
+ ///
/// The two arrays.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val unzip: array:('T1 * 'T2)[] -> ('T1[] * 'T2[])
/// Splits an array of triples into three arrays.
+ ///
/// The input array.
+ ///
/// The tuple of three arrays.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val unzip3: array:('T1 * 'T2 * 'T3)[] -> ('T1[] * 'T2[] * 'T3[])
/// Returns a new array containing only the elements of the array
/// for which the given predicate returns "true".
+ ///
/// The function to test the input elements.
/// The input array.
+ ///
/// An array containing the elements for which the given predicate returns true.
///
- /// Thrown when the input array is null.
+ /// Thrown when the input array is null.
[]
val where: predicate:('T -> bool) -> array:'T[] -> 'T[]
/// Returns an array of sliding windows containing elements drawn from the input
/// array. Each window is returned as a fresh array.
+ ///
/// The number of elements in each window.
/// The input array.
+ ///
/// The result array.
- /// Thrown when the input array is null.
- /// Thrown when windowSize is not positive.
+ ///
+ /// Thrown when the input array is null.
+ /// Thrown when windowSize is not positive.
[]
val windowed : windowSize:int -> array:'T[] -> 'T[][]
/// Combines the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an ArgumentException is
/// raised.
+ ///
/// The first input array.
/// The second input array.
- /// Thrown when either of the input arrays is null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when either of the input arrays is null.
+ /// Thrown when the input arrays differ in length.
+ ///
/// The array of tupled elements.
[]
val zip: array1:'T1[] -> array2:'T2[] -> ('T1 * 'T2)[]
/// Combines three arrays into an array of pairs. The three arrays must have equal lengths, otherwise an ArgumentException is
/// raised.
+ ///
/// The first input array.
/// The second input array.
/// The third input array.
- /// Thrown when any of the input arrays are null.
- /// Thrown when the input arrays differ in length.
+ ///
+ /// Thrown when any of the input arrays are null.
+ /// Thrown when the input arrays differ in length.
+ ///
/// The array of tupled elements.
[]
val zip3: array1:'T1[] -> array2:'T2[] -> array3:'T3[] -> ('T1 * 'T2 * 'T3)[]
@@ -1129,10 +1401,13 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to elements of the input array is not specified.
+ ///
/// The function to generate options from the elements.
/// The input array.
+ ///
/// 'U[]
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val choose: chooser:('T -> 'U option) -> array:'T[] -> 'U[]
@@ -1140,10 +1415,13 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to elements of the input array is not specified.
+ ///
///
/// The input array.
+ ///
/// 'U[]
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val collect : mapping:('T -> 'U[]) -> array:'T[] -> 'U[]
@@ -1152,10 +1430,13 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to elements of the input array is not specified.
+ ///
///
/// The input array.
+ ///
/// 'U[]
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val map : mapping:('T -> 'U) -> array:'T[] -> 'U[]
@@ -1165,10 +1446,13 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to elements of the input array is not specified.
+ ///
///
/// The input array.
+ ///
/// 'U[]
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val mapi: mapping:(int -> 'T -> 'U) -> array:'T[] -> 'U[]
@@ -1176,9 +1460,11 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to elements of the input array is not specified.
+ ///
///
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val iter : action:('T -> unit) -> array:'T[] -> unit
@@ -1187,9 +1473,11 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to elements of the input array is not specified.
+ ///
///
/// The input array.
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val iteri: action:(int -> 'T -> unit) -> array:'T[] -> unit
@@ -1197,8 +1485,10 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to indices is not specified.
+ ///
///
///
+ ///
/// 'T[]
[]
val init : count:int -> initializer:(int -> 'T) -> 'T[]
@@ -1209,9 +1499,12 @@ namespace Microsoft.FSharp.Collections
///
/// Performs the operation in parallel using System.Threading.Parallel.For.
/// The order in which the given function is applied to indices is not specified.
+ ///
/// The function to test the input elements.
/// The input array.
+ ///
/// 'T[] * 'T[]
- /// Thrown when the input array is null.
+ ///
+ /// Thrown when the input array is null.
[]
val partition : predicate:('T -> bool) -> array:'T[] -> 'T[] * 'T[]
diff --git a/src/fsharp/FSharp.Core/array2.fsi b/src/fsharp/FSharp.Core/array2.fsi
index 86a3d5be5c4..f21e7930d93 100644
--- a/src/fsharp/FSharp.Core/array2.fsi
+++ b/src/fsharp/FSharp.Core/array2.fsi
@@ -58,7 +58,7 @@ namespace Microsoft.FSharp.Collections
/// The second-dimension index to begin copying into in the target array.
/// The number of elements to copy across the first dimension of the arrays.
/// The number of elements to copy across the second dimension of the arrays.
- /// Thrown when any of the indices are negative or if either of
+ /// Thrown when any of the indices are negative or if either of
/// the counts are larger than the dimensions of the array allow.
[]
val blit: source:'T[,] -> sourceIndex1:int -> sourceIndex2:int -> target:'T[,] -> targetIndex1:int -> targetIndex2:int -> length1:int -> length2:int -> unit
@@ -70,7 +70,7 @@ namespace Microsoft.FSharp.Collections
/// A function to produce elements of the array given the two indices.
///
/// The generated array.
- /// Thrown when either of the lengths is negative.
+ /// Thrown when either of the lengths is negative.
[]
val init: length1:int -> length2:int -> initializer:(int -> int -> 'T) -> 'T[,]
@@ -81,7 +81,7 @@ namespace Microsoft.FSharp.Collections
/// The value to populate the new array.
///
/// The created array.
- /// Thrown when length1 or length2 is negative.
+ /// Thrown when length1 or length2 is negative.
[]
val create: length1:int -> length2:int -> value:'T -> 'T[,]
@@ -91,7 +91,7 @@ namespace Microsoft.FSharp.Collections
/// The length of the second dimension of the array.
///
/// The created array.
- /// Thrown when length1 or length2 is negative.
+ /// Thrown when length1 or length2 is negative.
[]
val zeroCreate : length1:int -> length2:int -> 'T[,]
@@ -104,7 +104,7 @@ namespace Microsoft.FSharp.Collections
/// A function to produce elements of the array given the two indices.
///
/// The created array.
- /// Thrown when base1, base2, length1, or length2 is negative.
+ /// Thrown when base1, base2, length1, or length2 is negative.
[]
val initBased: base1:int -> base2:int -> length1:int -> length2:int -> initializer:(int -> int -> 'T) -> 'T[,]
@@ -117,7 +117,7 @@ namespace Microsoft.FSharp.Collections
/// The value to populate the new array.
///
/// The created array.
- /// Thrown when base1, base2, length1, or length2 is negative.
+ /// Thrown when base1, base2, length1, or length2 is negative.
[]
val createBased: base1:int -> base2:int -> length1:int -> length2:int -> initial: 'T -> 'T[,]
@@ -129,7 +129,7 @@ namespace Microsoft.FSharp.Collections
/// The length of the second dimension of the array.
///
/// The created array.
- /// Thrown when base1, base2, length1, or length2 is negative.
+ /// Thrown when base1, base2, length1, or length2 is negative.
[]
val zeroCreateBased : base1:int -> base2:int -> length1:int -> length2:int -> 'T[,]
@@ -209,7 +209,7 @@ namespace Microsoft.FSharp.Collections
/// The index along the first dimension.
/// The index along the second dimension.
/// The value to set in the array.
- /// Thrown when the indices are negative or exceed the bounds of the array.
+ /// Thrown when the indices are negative or exceed the bounds of the array.
[]
val set: array:'T[,] -> index1:int -> index2:int -> value:'T -> unit
@@ -220,7 +220,7 @@ namespace Microsoft.FSharp.Collections
/// The index along the second dimension.
///
/// The value of the array at the given index.
- /// Thrown when the indices are negative or exceed the bounds of the array.
+ /// Thrown when the indices are negative or exceed the bounds of the array.
[]
val get: array:'T[,] -> index1:int -> index2:int -> 'T
diff --git a/src/fsharp/FSharp.Core/array3.fsi b/src/fsharp/FSharp.Core/array3.fsi
index e5372c9084d..cc295522d44 100644
--- a/src/fsharp/FSharp.Core/array3.fsi
+++ b/src/fsharp/FSharp.Core/array3.fsi
@@ -17,29 +17,35 @@ namespace Microsoft.FSharp.Collections
/// The length of the second dimension.
/// The length of the third dimension.
/// The value of the array elements.
+ ///
/// The created array.
[]
val create: length1:int -> length2:int -> length3:int -> initial:'T -> 'T[,,]
/// Creates an array given the dimensions and a generator function to compute the elements.
+ ///
/// The length of the first dimension.
/// The length of the second dimension.
/// The length of the third dimension.
/// The function to create an initial value at each index into the array.
+ ///
/// The created array.
[]
val init: length1:int -> length2:int -> length3:int -> initializer:(int -> int -> int -> 'T) -> 'T[,,]
/// Fetches an element from a 3D array. You can also use the syntax 'array.[index1,index2,index3]'
+ ///
/// The input array.
/// The index along the first dimension.
/// The index along the second dimension.
/// The index along the third dimension.
+ ///
/// The value at the given index.
[]
val get: array:'T[,,] -> index1:int -> index2:int -> index3:int -> 'T
/// Applies the given function to each element of the array.
+ ///
/// The function to apply to each element of the array.
/// The input array.
[]
@@ -47,25 +53,32 @@ namespace Microsoft.FSharp.Collections
/// Applies the given function to each element of the array. The integer indices passed to the
/// function indicates the index of element.
+ ///
/// The function to apply to each element of the array.
/// The input array.
[]
val iteri: action:(int -> int -> int -> 'T -> unit) -> array:'T[,,] -> unit
/// Returns the length of an array in the first dimension
+ ///
/// The input array.
+ ///
/// The length of the array in the first dimension.
[]
val length1: array:'T[,,] -> int
/// Returns the length of an array in the second dimension.
+ ///
/// The input array.
+ ///
/// The length of the array in the second dimension.
[]
val length2: array:'T[,,] -> int
/// Returns the length of an array in the third dimension.
+ ///
/// The input array.
+ ///
/// The length of the array in the third dimension.
[]
val length3: array:'T[,,] -> int
@@ -77,6 +90,7 @@ namespace Microsoft.FSharp.Collections
/// array.
/// The function to transform each element of the array.
/// The input array.
+ ///
/// The array created from the transformed elements.
[]
val map: mapping:('T -> 'U) -> array:'T[,,] -> 'U[,,]
@@ -89,12 +103,14 @@ namespace Microsoft.FSharp.Collections
/// array.
/// The function to transform the elements at each index in the array.
/// The input array.
+ ///
/// The array created from the transformed elements.
[]
val mapi: mapping:(int -> int -> int -> 'T -> 'U) -> array:'T[,,] -> 'U[,,]
/// Sets the value of an element in an array. You can also
/// use the syntax 'array.[index1,index2,index3] <- value'.
+ ///
/// The input array.
/// The index along the first dimension.
/// The index along the second dimension.
@@ -104,9 +120,11 @@ namespace Microsoft.FSharp.Collections
val set: array:'T[,,] -> index1:int -> index2:int -> index3:int -> value:'T -> unit
/// Creates an array where the entries are initially the "default" value.
+ ///
/// The length of the first dimension.
/// The length of the second dimension.
/// The length of the third dimension.
+ ///
/// The created array.
[]
val zeroCreate: length1:int -> length2:int -> length3:int -> 'T[,,]
@@ -119,70 +137,87 @@ namespace Microsoft.FSharp.Collections
module Array4D =
/// Creates an array whose elements are all initially the given value
+ ///
/// The length of the first dimension.
/// The length of the second dimension.
/// The length of the third dimension.
/// The length of the fourth dimension.
/// The initial value for each element of the array.
+ ///
/// The created array.
[]
val create: length1:int -> length2:int -> length3:int -> length4:int -> initial:'T -> 'T[,,,]
/// Creates an array given the dimensions and a generator function to compute the elements.
+ ///
/// The length of the first dimension.
/// The length of the second dimension.
/// The length of the third dimension.
/// The length of the fourth dimension.
/// The function to create an initial value at each index in the array.
+ ///
/// The created array.
[]
val init: length1:int -> length2:int -> length3:int -> length4:int -> initializer:(int -> int -> int -> int -> 'T) -> 'T[,,,]
/// Returns the length of an array in the first dimension
+ ///
/// The input array.
+ ///
/// The length of the array in the first dimension.
[]
val length1: array:'T[,,,] -> int
/// Returns the length of an array in the second dimension.
+ ///
/// The input array.
+ ///
/// The length of the array in the second dimension.
[]
val length2: array:'T[,,,] -> int
/// Returns the length of an array in the third dimension.
+ ///
/// The input array.
+ ///
/// The length of the array in the third dimension.
[]
val length3: array:'T[,,,] -> int
/// Returns the length of an array in the fourth dimension.
+ ///
/// The input array.
+ ///
/// The length of the array in the fourth dimension.
[]
val length4: array:'T[,,,] -> int
/// Creates an array where the entries are initially the "default" value.
+ ///
/// The length of the first dimension.
/// The length of the second dimension.
/// The length of the third dimension.
/// The length of the fourth dimension.
+ ///
/// The created array.
[]
val zeroCreate: length1:int -> length2:int -> length3:int -> length4:int -> 'T[,,,]
/// Fetches an element from a 4D array. You can also use the syntax 'array.[index1,index2,index3,index4]'
+ ///
/// The input array.
/// The index along the first dimension.
/// The index along the second dimension.
/// The index along the third dimension.
/// The index along the fourth dimension.
+ ///
/// The value at the given index.
[]
val get: array:'T[,,,] -> index1:int -> index2:int -> index3:int -> index4:int -> 'T
/// Sets the value of an element in an array. You can also
/// use the syntax 'array.[index1,index2,index3,index4] <- value'.
+ ///
/// The input array.
/// The index along the first dimension.
/// The index along the second dimension.
diff --git a/src/fsharp/FSharp.Core/async.fsi b/src/fsharp/FSharp.Core/async.fsi
index 72502b9d26e..594d90144f1 100644
--- a/src/fsharp/FSharp.Core/async.fsi
+++ b/src/fsharp/FSharp.Core/async.fsi
@@ -43,47 +43,56 @@ namespace Microsoft.FSharp.Control
///
/// The timeout parameter is given in milliseconds. A value of -1 is equivalent to
/// System.Threading.Timeout.Infinite.
+ ///
/// The computation to run.
/// The amount of time in milliseconds to wait for the result of the
- /// computation before raising a System.TimeoutException. If no value is provided
+ /// computation before raising a . If no value is provided
/// for timeout then a default of -1 is used to correspond to System.Threading.Timeout.Infinite.
/// If a cancellable cancellationToken is provided, timeout parameter will be ignored
/// The cancellation token to be associated with the computation.
/// If one is not supplied, the default cancellation token is used.
+ ///
/// The result of the computation.
static member RunSynchronously : computation:Async<'T> * ?timeout : int * ?cancellationToken:CancellationToken-> 'T
/// Starts the asynchronous computation in the thread pool. Do not await its result.
///
/// If no cancellation token is provided then the default cancellation token is used.
+ ///
/// The computation to run asynchronously.
/// The cancellation token to be associated with the computation.
/// If one is not supplied, the default cancellation token is used.
static member Start : computation:Async * ?cancellationToken:CancellationToken -> unit
/// Executes a computation in the thread pool.
+ ///
/// If no cancellation token is provided then the default cancellation token is used.
- /// A System.Threading.Tasks.Task that will be completed
+ ///
+ /// A that will be completed
/// in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled)
///
static member StartAsTask : computation:Async<'T> * ?taskCreationOptions:TaskCreationOptions * ?cancellationToken:CancellationToken -> Task<'T>
- /// Creates an asynchronous computation which starts the given computation as a System.Threading.Tasks.Task
+ /// Creates an asynchronous computation which starts the given computation as a
static member StartChildAsTask : computation:Async<'T> * ?taskCreationOptions:TaskCreationOptions -> Async>
/// Creates an asynchronous computation that executes computation.
/// If this computation completes successfully then return Choice1Of2 with the returned
/// value. If this computation raises an exception before it completes then return Choice2Of2
/// with the raised exception.
+ ///
/// The input computation that returns the type T.
+ ///
/// A computation that returns a choice of type T or exception.
static member Catch : computation:Async<'T> -> Async>
/// Creates an asynchronous computation that executes computation.
/// If this computation is cancelled before it completes then the computation generated by
/// running compensation is executed.
+ ///
/// The input asynchronous computation.
/// The function to be run if the computation is cancelled.
+ ///
/// An asynchronous computation that runs the compensation if the input computation
/// is cancelled.
static member TryCancelled : computation:Async<'T> * compensation:(OperationCanceledException -> unit) -> Async<'T>
@@ -97,16 +106,20 @@ namespace Microsoft.FSharp.Control
/// interruption is executed on the thread that is performing the cancellation. This can
/// be used to arrange for a computation to be asynchronously notified that a cancellation
/// has occurred, e.g. by setting a flag, or deregistering a pending I/O action.
+ ///
/// The function that is executed on the thread performing the
/// cancellation.
+ ///
/// An asynchronous computation that triggers the interruption if it is cancelled
/// before being disposed.
static member OnCancel : interruption: (unit -> unit) -> Async
/// Creates an asynchronous computation that returns the CancellationToken governing the execution
/// of the computation.
+ ///
/// In async { let! token = Async.CancellationToken ...} token can be used to initiate other
/// asynchronous operations that will cancel cooperatively with this workflow.
+ ///
/// An asynchronous computation capable of retrieving the CancellationToken from a computation
/// expression.
static member CancellationToken : Async
@@ -118,6 +131,7 @@ namespace Microsoft.FSharp.Control
static member CancelDefaultToken : unit -> unit
/// Gets the default cancellation token for executing asynchronous computations.
+ ///
/// The default CancellationToken.
static member DefaultCancellationToken : CancellationToken
@@ -128,7 +142,7 @@ namespace Microsoft.FSharp.Control
///
/// This method should normally be used as the immediate
/// right-hand-side of a let! binding in an F# asynchronous workflow, that is,
- ///
+ ///
/// async { ...
/// let! completor1 = childComputation1 |> Async.StartChild
/// let! completor2 = childComputation2 |> Async.StartChild
@@ -136,13 +150,16 @@ namespace Microsoft.FSharp.Control
/// let! result1 = completor1
/// let! result2 = completor2
/// ... }
+ ///
///
/// When used in this way, each use of StartChild starts an instance of childComputation
/// and returns a completor object representing a computation to wait for the completion of the operation.
/// When executed, the completor awaits the completion of childComputation.
+ ///
/// The child computation.
/// The timeout value in milliseconds. If one is not provided
- /// then the default value of -1 corresponding to System.Threading.Timeout.Infinite.
+ /// then the default value of -1 corresponding to .
+ ///
/// A new computation that waits for the input computation to finish.
static member StartChild : computation:Async<'T> * ?millisecondsTimeout : int -> Async>
@@ -157,7 +174,9 @@ namespace Microsoft.FSharp.Control
/// The overall computation will respond to cancellation while executing the child computations.
/// If cancelled, the computation will cancel any remaining child computations but will still wait
/// for the other child computations to complete.
+ ///
/// A sequence of distinct computations to be parallelized.
+ ///
/// A computation that returns an array of values from the sequence of input computations.
static member Parallel : computations:seq> -> Async<'T[]>
@@ -172,7 +191,9 @@ namespace Microsoft.FSharp.Control
/// The overall computation will respond to cancellation while executing the child computations.
/// If cancelled, the computation will cancel any remaining child computations but will still wait
/// for the other child computations to complete.
+ ///
/// A sequence of distinct computations to be parallelized.
+ ///
/// A computation that returns an array of values from the sequence of input computations.
static member Parallel : computations:seq> * ?maxDegreeOfParallelism : int -> Async<'T[]>
@@ -186,7 +207,9 @@ namespace Microsoft.FSharp.Control
/// The overall computation will respond to cancellation while executing the child computations.
/// If cancelled, the computation will cancel any remaining child computations but will still wait
/// for the other child computations to complete.
+ ///
/// A sequence of distinct computations to be run in sequence.
+ ///
/// A computation that returns an array of values from the sequence of input computations.
static member Sequential : computations:seq> -> Async<'T[]>
@@ -201,7 +224,9 @@ namespace Microsoft.FSharp.Control
/// The overall computation will respond to cancellation while executing the child computations.
/// If cancelled, the computation will cancel any remaining child computations but will still wait
/// for the other child computations to complete.
+ ///
/// A sequence of computations to be parallelized.
+ ///
/// A computation that returns the first succeeding computation.
static member Choice : computations:seq> -> Async<'T option>
@@ -209,26 +234,32 @@ namespace Microsoft.FSharp.Control
/// Creates an asynchronous computation that creates a new thread and runs
/// its continuation in that thread.
+ ///
/// A computation that will execute on a new thread.
static member SwitchToNewThread : unit -> Async
/// Creates an asynchronous computation that queues a work item that runs
/// its continuation.
+ ///
/// A computation that generates a new work item in the thread pool.
static member SwitchToThreadPool : unit -> Async
/// Creates an asynchronous computation that runs
/// its continuation using syncContext.Post. If syncContext is null
/// then the asynchronous computation is equivalent to SwitchToThreadPool().
+ ///
/// The synchronization context to accept the posted computation.
+ ///
/// An asynchronous computation that uses the syncContext context to execute.
static member SwitchToContext : syncContext:System.Threading.SynchronizationContext -> Async
/// Creates an asynchronous computation that captures the current
/// success, exception and cancellation continuations. The callback must
/// eventually call exactly one of the given continuations.
+ ///
/// The function that accepts the current success, exception, and cancellation
/// continuations.
+ ///
/// An asynchronous computation that provides the callback with the current continuations.
static member FromContinuations : callback:(('T -> unit) * (exn -> unit) * (OperationCanceledException -> unit) -> unit) -> Async<'T>
@@ -242,101 +273,115 @@ namespace Microsoft.FSharp.Control
///
/// If cancelAction is not specified, then cancellation causes the computation
/// to cancel immediately.
+ ///
/// The event to handle once.
/// An optional function to execute instead of cancelling when a
/// cancellation is issued.
+ ///
/// An asynchronous computation that waits for the event to be invoked.
static member AwaitEvent: event:IEvent<'Del,'T> * ?cancelAction : (unit -> unit) -> Async<'T> when 'Del : delegate<'T,unit> and 'Del :> System.Delegate
/// Creates an asynchronous computation that will wait on the given WaitHandle.
///
/// The computation returns true if the handle indicated a result within the given timeout.
+ ///
/// The WaitHandle that can be signalled.
/// The timeout value in milliseconds. If one is not provided
- /// then the default value of -1 corresponding to System.Threading.Timeout.Infinite.
+ /// then the default value of -1 corresponding to .
+ ///
/// An asynchronous computation that waits on the given WaitHandle.
static member AwaitWaitHandle: waitHandle: WaitHandle * ?millisecondsTimeout:int -> Async
/// Creates an asynchronous computation that will wait on the IAsyncResult.
///
/// The computation returns true if the handle indicated a result within the given timeout.
+ ///
/// The IAsyncResult to wait on.
/// The timeout value in milliseconds. If one is not provided
- /// then the default value of -1 corresponding to System.Threading.Timeout.Infinite.
+ /// then the default value of -1 corresponding to .
+ ///
/// An asynchronous computation that waits on the given IAsyncResult.
static member AwaitIAsyncResult: iar: System.IAsyncResult * ?millisecondsTimeout:int -> Async
/// Return an asynchronous computation that will wait for the given task to complete and return
/// its result.
static member AwaitTask: task: Task<'T> -> Async<'T>
+
/// Return an asynchronous computation that will wait for the given task to complete and return
/// its result.
static member AwaitTask: task: Task -> Async
- /// Creates an asynchronous computation that will sleep for the given time. This is scheduled
- /// using a System.Threading.Timer object. The operation will not block operating system threads
- /// for the duration of the wait.
+ ///
+ /// Creates an asynchronous computation that will sleep for the given time. This is scheduled
+ /// using a System.Threading.Timer object. The operation will not block operating system threads
+ /// for the duration of the wait.
+ ///
+ ///
/// The number of milliseconds to sleep.
+ ///
/// An asynchronous computation that will sleep for the given time.
- /// Thrown when the due time is negative
+ ///
+ /// Thrown when the due time is negative
/// and not infinite.
static member Sleep: millisecondsDueTime:int -> Async
- /// Creates an asynchronous computation that will sleep for the given time. This is scheduled
- /// using a System.Threading.Timer object. The operation will not block operating system threads
- /// for the duration of the wait.
+ ///
+ /// Creates an asynchronous computation that will sleep for the given time. This is scheduled
+ /// using a System.Threading.Timer object. The operation will not block operating system threads
+ /// for the duration of the wait.
+ ///
+ ///
/// The amount of time to sleep.
+ ///
/// An asynchronous computation that will sleep for the given time.
- /// Thrown when the due time is negative.
+ ///
+ /// Thrown when the due time is negative.
static member Sleep: dueTime:TimeSpan -> Async
- /// Creates an asynchronous computation in terms of a Begin/End pair of actions in
- /// the style used in CLI APIs. For example,
- /// Async.FromBeginEnd(ws.BeginGetWeather,ws.EndGetWeather)
- /// When the computation is run, beginFunc is executed, with
- /// a callback which represents the continuation of the computation.
- /// When the callback is invoked, the overall result is fetched using endFunc.
+ ///
+ /// Creates an asynchronous computation in terms of a Begin/End pair of actions in
+ /// the style used in CLI APIs.
+ ///
///
- /// The computation will respond to cancellation while waiting for the completion
+ ///
+ /// The computation will respond to cancellation while waiting for the completion
/// of the operation. If a cancellation occurs, and cancelAction is specified, then it is
/// executed, and the computation continues to wait for the completion of the operation.
///
/// If cancelAction is not specified, then cancellation causes the computation
/// to stop immediately, and subsequent invocations of the callback are ignored.
+ ///
/// The function initiating a traditional CLI asynchronous operation.
/// The function completing a traditional CLI asynchronous operation.
/// An optional function to be executed when a cancellation is requested.
+ ///
/// An asynchronous computation wrapping the given Begin/End functions.
static member FromBeginEnd : beginAction:(System.AsyncCallback * obj -> System.IAsyncResult) * endAction:(System.IAsyncResult -> 'T) * ?cancelAction : (unit -> unit) -> Async<'T>
- /// Creates an asynchronous computation in terms of a Begin/End pair of actions in
- /// the style used in CLI APIs. This overload should be used if the operation is
- /// qualified by one argument. For example,
- /// Async.FromBeginEnd(place,ws.BeginGetWeather,ws.EndGetWeather)
- /// When the computation is run, beginFunc is executed, with
- /// a callback which represents the continuation of the computation.
- /// When the callback is invoked, the overall result is fetched using endFunc.
+ ///
+ /// Creates an asynchronous computation in terms of a Begin/End pair of actions in
+ /// the style used in .NET 2.0 APIs.
+ ///
///
/// The computation will respond to cancellation while waiting for the completion
/// of the operation. If a cancellation occurs, and cancelAction is specified, then it is
/// executed, and the computation continues to wait for the completion of the operation.
- ///
- /// If cancelAction is not specified, then cancellation causes the computation
- /// to stop immediately, and subsequent invocations of the callback are ignored.
+ ///
+ /// If cancelAction is not specified, then cancellation causes the computation
+ /// to stop immediately, and subsequent invocations of the callback are ignored.
+ ///
+ ///
/// The argument for the operation.
/// The function initiating a traditional CLI asynchronous operation.
/// The function completing a traditional CLI asynchronous operation.
/// An optional function to be executed when a cancellation is requested.
+ ///
/// An asynchronous computation wrapping the given Begin/End functions.
static member FromBeginEnd : arg:'Arg1 * beginAction:('Arg1 * System.AsyncCallback * obj -> System.IAsyncResult) * endAction:(System.IAsyncResult -> 'T) * ?cancelAction : (unit -> unit) -> Async<'T>
- /// Creates an asynchronous computation in terms of a Begin/End pair of actions in
- /// the style used in CLI APIs. This overload should be used if the operation is
- /// qualified by two arguments. For example,
- /// Async.FromBeginEnd(arg1,arg2,ws.BeginGetWeather,ws.EndGetWeather)
- /// When the computation is run, beginFunc is executed, with
- /// a callback which represents the continuation of the computation.
- /// When the callback is invoked, the overall result is fetched using endFunc.
+ ///
+ /// Creates an asynchronous computation in terms of a Begin/End pair of actions in
+ /// the style used in .NET 2.0 APIs.
///
/// The computation will respond to cancellation while waiting for the completion
/// of the operation. If a cancellation occurs, and cancelAction is specified, then it is
@@ -344,21 +389,18 @@ namespace Microsoft.FSharp.Control
///
/// If cancelAction is not specified, then cancellation causes the computation
/// to stop immediately, and subsequent invocations of the callback are ignored.
+ ///
/// The first argument for the operation.
/// The second argument for the operation.
/// The function initiating a traditional CLI asynchronous operation.
/// The function completing a traditional CLI asynchronous operation.
/// An optional function to be executed when a cancellation is requested.
+ ///
/// An asynchronous computation wrapping the given Begin/End functions.
static member FromBeginEnd : arg1:'Arg1 * arg2:'Arg2 * beginAction:('Arg1 * 'Arg2 * System.AsyncCallback * obj -> System.IAsyncResult) * endAction:(System.IAsyncResult -> 'T) * ?cancelAction : (unit -> unit) -> Async<'T>
/// Creates an asynchronous computation in terms of a Begin/End pair of actions in
- /// the style used in CLI APIs. This overload should be used if the operation is
- /// qualified by three arguments. For example,
- /// Async.FromBeginEnd(arg1,arg2,arg3,ws.BeginGetWeather,ws.EndGetWeather)
- /// When the computation is run, beginFunc is executed, with
- /// a callback which represents the continuation of the computation.
- /// When the callback is invoked, the overall result is fetched using endFunc.
+ /// the style used in .NET 2.0 APIs.
///
/// The computation will respond to cancellation while waiting for the completion
/// of the operation. If a cancellation occurs, and cancelAction is specified, then it is
@@ -366,48 +408,23 @@ namespace Microsoft.FSharp.Control
///
/// If cancelAction is not specified, then cancellation causes the computation
/// to stop immediately, and subsequent invocations of the callback are ignored.
+ ///
/// The first argument for the operation.
/// The second argument for the operation.
/// The third argument for the operation.
/// The function initiating a traditional CLI asynchronous operation.
/// The function completing a traditional CLI asynchronous operation.
/// An optional function to be executed when a cancellation is requested.
+ ///
/// An asynchronous computation wrapping the given Begin/End functions.
static member FromBeginEnd : arg1:'Arg1 * arg2:'Arg2 * arg3:'Arg3 * beginAction:('Arg1 * 'Arg2 * 'Arg3 * System.AsyncCallback * obj -> System.IAsyncResult) * endAction:(System.IAsyncResult -> 'T) * ?cancelAction : (unit -> unit) -> Async<'T>
- /// Creates three functions that can be used to implement the .NET Asynchronous
+ /// Creates three functions that can be used to implement the .NET 1.0 Asynchronous
/// Programming Model (APM) for a given asynchronous computation.
- ///
- /// The functions should normally be published as members with prefix Begin,
- /// End and Cancel, and can be used within a type definition as follows:
- ///
- /// let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun arg -> computation)
- /// member x.BeginSomeOperation(arg,callback,state:obj) = beginAction(arg,callback,state)
- /// member x.EndSomeOperation(iar) = endAction(iar)
- /// member x.CancelSomeOperation(iar) = cancelAction(iar)
- ///
- ///
- /// If the asynchronous computation takes no arguments, then AsBeginEnd is used as follows:
- ///
- /// let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun () -> computation)
- /// member x.BeginSomeOperation(callback,state:obj) = beginAction((),callback,state)
- /// member x.EndSomeOperation(iar) = endAction(iar)
- /// member x.CancelSomeOperation(iar) = cancelAction(iar)
- ///
- ///
- ///
- /// If the asynchronous computation takes two arguments, then AsBeginEnd is used as follows:
- ///
- /// let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun arg1 arg2 -> computation)
- /// member x.BeginSomeOperation(arg1,arg2,callback,state:obj) = beginAction((),callback,state)
- /// member x.EndSomeOperation(iar) = endAction(iar)
- /// member x.CancelSomeOperation(iar) = cancelAction(iar)
- ///
- ///
- /// In each case, the resulting API will be familiar to programmers in other CLI languages and
- /// is a useful way to publish asynchronous computations in CLI components.
+ ///
/// A function generating the asynchronous computation to split into the traditional
/// .NET Asynchronous Programming Model.
+ ///
/// A tuple of the begin, end, and cancel members.
static member AsBeginEnd : computation:('Arg -> Async<'T>) ->
// The 'Begin' member
@@ -419,14 +436,18 @@ namespace Microsoft.FSharp.Control
/// Creates an asynchronous computation that runs the given computation and ignores
/// its result.
+ ///
/// The input computation.
+ ///
/// A computation that is equivalent to the input computation, but disregards the result.
static member Ignore : computation: Async<'T> -> Async
/// Runs an asynchronous computation, starting immediately on the current operating system
/// thread. Call one of the three continuations when the operation completes.
+ ///
/// If no cancellation token is provided then the default cancellation token
/// is used.
+ ///
/// The asynchronous computation to execute.
/// The function called on success.
/// The function called on exception.
@@ -445,7 +466,9 @@ namespace Microsoft.FSharp.Control
/// Runs an asynchronous computation, starting immediately on the current operating system
/// thread.
+ ///
/// If no cancellation token is provided then the default cancellation token is used.
+ ///
/// The asynchronous computation to execute.
/// The CancellationToken to associate with the computation.
/// The default is used if this parameter is not provided.
@@ -453,16 +476,19 @@ namespace Microsoft.FSharp.Control
computation:Async * ?cancellationToken:CancellationToken-> unit
/// Runs an asynchronous computation, starting immediately on the current operating system
- /// thread, but also returns the execution as System.Threading.Tasks.Task
+ /// thread, but also returns the execution as
///
+ ///
/// If no cancellation token is provided then the default cancellation token is used.
/// You may prefer using this method if you want to achive a similar behviour to async await in C# as
/// async computation starts on the current thread with an ability to return a result.
///
+ ///
/// The asynchronous computation to execute.
/// The CancellationToken to associate with the computation.
/// The default is used if this parameter is not provided.
- /// A System.Threading.Tasks.Task that will be completed
+ ///
+ /// A that will be completed
/// in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled)
static member StartImmediateAsTask:
computation:Async<'T> * ?cancellationToken:CancellationToken-> Task<'T>
@@ -586,9 +612,11 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of for in the
/// async { ... } computation expression syntax.
+ ///
/// The sequence to enumerate.
/// A function to take an item from the sequence and create
/// an asynchronous computation. Can be seen as the body of the for expression.
+ ///
/// An asynchronous computation that will enumerate the sequence and run body
/// for each element.
member For: sequence:seq<'T> * body:('T -> Async) -> Async
@@ -609,8 +637,10 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of expression sequencing in the
/// async { ... } computation expression syntax.
+ ///
/// The first part of the sequenced computation.
/// The second part of the sequenced computation.
+ ///
/// An asynchronous computation that runs both of the computations sequentially.
member inline Combine : computation1:Async * computation2:Async<'T> -> Async<'T>
@@ -621,9 +651,11 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of while in the
/// async { ... } computation expression syntax.
+ ///
/// The function to determine when to stop executing computation.
/// The function to be executed. Equivalent to the body
/// of a while expression.
+ ///
/// An asynchronous computation that behaves similarly to a while loop when run.
member While : guard:(unit -> bool) * computation:Async -> Async
@@ -633,7 +665,9 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of return in the
/// async { ... } computation expression syntax.
+ ///
/// The value to return from the computation.
+ ///
/// An asynchronous computation that returns value when executed.
member inline Return : value:'T -> Async<'T>
@@ -641,14 +675,18 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of return! in the
/// async { ... } computation expression syntax.
+ ///
/// The input computation.
+ ///
/// The input computation.
member inline ReturnFrom : computation:Async<'T> -> Async<'T>
/// Creates an asynchronous computation that runs generator.
///
/// A cancellation check is performed when the computation is executed.
+ ///
/// The function to run.
+ ///
/// An asynchronous computation that runs generator.
member Delay : generator:(unit -> Async<'T>) -> Async<'T>
@@ -660,9 +698,11 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of use and use! in the
/// async { ... } computation expression syntax.
+ ///
/// The resource to be used and disposed.
/// The function that takes the resource and returns an asynchronous
/// computation.
+ ///
/// An asynchronous computation that binds and eventually disposes resource.
member Using: resource:'T * binder:('T -> Async<'U>) -> Async<'U> when 'T :> System.IDisposable
@@ -673,8 +713,10 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of let! in the
/// async { ... } computation expression syntax.
+ ///
/// The computation to provide an unbound result.
/// The function to bind the result of computation.
+ ///
/// An asynchronous computation that performs a monadic bind on the result
/// of computation.
member inline Bind: computation: Async<'T> * binder: ('T -> Async<'U>) -> Async<'U>
@@ -687,9 +729,11 @@ namespace Microsoft.FSharp.Control
///
/// The existence of this method permits the use of try/finally in the
/// async { ... } computation expression syntax.
+ ///
/// The input computation.
/// The action to be run after computation completes or raises an
/// exception (including cancellation).
+ ///
/// An asynchronous computation that executes computation and compensation afterwards or
/// when an exception is raised.
member inline TryFinally : computation:Async<'T> * compensation:(unit -> unit) -> Async<'T>
@@ -704,6 +748,7 @@ namespace Microsoft.FSharp.Control
///
/// The input computation.
/// The function to run when computation throws an exception.
+ ///
/// An asynchronous computation that executes computation and calls catchHandler if an
/// exception is thrown.
member inline TryWith : computation:Async<'T> * catchHandler:(exn -> Async<'T>) -> Async<'T>
@@ -726,27 +771,32 @@ namespace Microsoft.FSharp.Control
/// The buffer to read into.
/// An optional offset as a number of bytes in the stream.
/// An optional number of bytes to read from the stream.
+ ///
/// An asynchronous computation that will read from the stream into the given buffer.
- /// Thrown when the sum of offset and count is longer than
+ /// Thrown when the sum of offset and count is longer than
/// the buffer length.
- /// Thrown when offset or count is negative.
+ /// Thrown when offset or count is negative.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncRead : buffer:byte[] * ?offset:int * ?count:int -> Async
/// Returns an asynchronous computation that will read the given number of bytes from the stream.
+ ///
/// The number of bytes to read.
+ ///
/// An asynchronous computation that returns the read byte[] when run.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncRead : count:int -> Async
/// Returns an asynchronous computation that will write the given bytes to the stream.
+ ///
/// The buffer to write from.
/// An optional offset as a number of bytes in the stream.
/// An optional number of bytes to write to the stream.
+ ///
/// An asynchronous computation that will write the given bytes to the stream.
- /// Thrown when the sum of offset and count is longer than
+ /// Thrown when the sum of offset and count is longer than
/// the buffer length.
- /// Thrown when offset or count is negative.
+ /// Thrown when offset or count is negative.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncWrite : buffer:byte[] * ?offset:int * ?count:int -> Async
@@ -755,6 +805,7 @@ namespace Microsoft.FSharp.Control
type IObservable<'T> with
/// Permanently connects a listener function to the observable. The listener will
/// be invoked for each observation.
+ ///
/// The function to be called for each observation.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member Add: callback:('T -> unit) -> unit
@@ -762,7 +813,9 @@ namespace Microsoft.FSharp.Control
/// Connects a listener function to the observable. The listener will
/// be invoked for each observation. The listener can be removed by
/// calling Dispose on the returned IDisposable object.
+ ///
/// The function to be called for each observation.
+ ///
/// An object that will remove the listener if disposed.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member Subscribe: callback:('T -> unit) -> System.IDisposable
@@ -780,20 +833,26 @@ namespace Microsoft.FSharp.Control
type System.Net.WebClient with
/// Returns an asynchronous computation that, when run, will wait for the download of the given URI.
+ ///
/// The URI to retrieve.
+ ///
/// An asynchronous computation that will wait for the download of the URI.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncDownloadString : address:System.Uri -> Async
/// Returns an asynchronous computation that, when run, will wait for the download of the given URI.
+ ///
/// The URI to retrieve.
+ ///
/// An asynchronous computation that will wait for the download of the URI.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncDownloadData : address:System.Uri -> Async
/// Returns an asynchronous computation that, when run, will wait for the download of the given URI to specified file.
+ ///
/// The URI to retrieve.
/// The filename to save download to.
+ ///
/// An asynchronous computation that will wait for the download of the URI to specified file.
[] // give the extension member a nice, unmangled compiled name, unique within this module
member AsyncDownloadFile : address:System.Uri * fileName: string -> Async
diff --git a/src/fsharp/FSharp.Core/collections.fsi b/src/fsharp/FSharp.Core/collections.fsi
index ad7f4363d1b..8e3eab67a38 100644
--- a/src/fsharp/FSharp.Core/collections.fsi
+++ b/src/fsharp/FSharp.Core/collections.fsi
@@ -20,6 +20,7 @@ namespace Microsoft.FSharp.Collections
/// Compare using the given comparer function.
/// A function to compare two values.
+ ///
/// An object implementing IComparer using the supplied comparer.
val FromFunction : comparer:('T -> 'T -> int) -> IComparer<'T>
@@ -42,8 +43,10 @@ namespace Microsoft.FSharp.Collections
val Reference<'T> : IEqualityComparer<'T> when 'T : not struct
/// Hash using the given hashing and equality functions.
+ ///
/// A function to generate a hash code from a value.
/// A function to test equality of two values.
+ ///
/// An object implementing IEqualityComparer using the supplied functions.
// inline justification: allows inlining of hash functions
diff --git a/src/fsharp/FSharp.Core/event.fsi b/src/fsharp/FSharp.Core/event.fsi
index 23bc85ceea6..dfc76ab434d 100644
--- a/src/fsharp/FSharp.Core/event.fsi
+++ b/src/fsharp/FSharp.Core/event.fsi
@@ -27,6 +27,7 @@ namespace Microsoft.FSharp.Control
/// The created event.
new : unit -> Event<'Delegate,'Args>
/// Triggers the event using the given sender object and parameters. The sender object may be null.
+ ///
/// The object triggering the event.
/// The parameters for the event.
member Trigger : sender:obj * args:'Args -> unit
@@ -41,6 +42,7 @@ namespace Microsoft.FSharp.Control
/// The created event.
new : unit -> Event<'T>
/// Triggers an observation using the given parameters.
+ ///
/// The event parameters.
member Trigger : arg:'T -> unit
/// Publishes an observation as a first class value.
diff --git a/src/fsharp/FSharp.Core/eventmodule.fsi b/src/fsharp/FSharp.Core/eventmodule.fsi
index c3f5f3cc9fb..54a0c4057c8 100644
--- a/src/fsharp/FSharp.Core/eventmodule.fsi
+++ b/src/fsharp/FSharp.Core/eventmodule.fsi
@@ -12,21 +12,26 @@ namespace Microsoft.FSharp.Control
/// Fires the output event when either of the input events fire.
/// The first input event.
/// The second input event.
+ ///
/// An event that fires when either of the input events fire.
[]
val merge: event1:IEvent<'Del1,'T> -> event2:IEvent<'Del2,'T> -> IEvent<'T>
/// Returns a new event that passes values transformed by the given function.
+ ///
/// The function to transform event values.
/// The input event.
+ ///
/// An event that passes the transformed values.
[]
val map: mapping:('T -> 'U) -> sourceEvent:IEvent<'Del,'T> -> IEvent<'U>
/// Returns a new event that listens to the original event and triggers the resulting
/// event only when the argument to the event passes the given function.
+ ///
/// The function to determine which triggers from the event to propagate.
/// The input event.
+ ///
/// An event that only passes values that pass the predicate.
[]
val filter: predicate:('T -> bool) -> sourceEvent:IEvent<'Del,'T> -> IEvent<'T>
@@ -34,8 +39,10 @@ namespace Microsoft.FSharp.Control
/// Returns a new event that listens to the original event and triggers the
/// first resulting event if the application of the predicate to the event arguments
/// returned true, and the second event if it returned false.
+ ///
/// The function to determine which output event to trigger.
/// The input event.
+ ///
/// A tuple of events. The first is triggered when the predicate evaluates to true
/// and the second when the predicate evaluates to false.
[]
@@ -44,8 +51,10 @@ namespace Microsoft.FSharp.Control
/// Returns a new event that listens to the original event and triggers the
/// first resulting event if the application of the function to the event arguments
/// returned a Choice1Of2, and the second event if it returns a Choice2Of2.
+ ///
/// The function to transform event values into one of two types.
/// The input event.
+ ///
/// A tuple of events. The first fires whenever