@@ -15,6 +15,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1515* The ` FSharp.Collections.Immutable.Option.FlatList ` and ` FSharp.Collections.Immutable.Tuple.FlatList ` modules repeat the
1616 functions that use value options or struct tuples with options and reference tuples.
1717* The ` FlatListBuilder ` module works on the builder of a flat list, and ` flatList { } ` builds a flat list.
18+ * ` IndexedList ` has every function of the FSharp.Core ` List ` module that applies to an immutable list, with its semantics,
19+ parameter names and exceptions and with stable sorts, plus ` add ` , ` binarySearch ` , ` blit ` , ` cons ` , ` indexOf ` ,
20+ ` indexOfWith ` , ` lastIndexOf ` , ` lastIndexOfWith ` , ` ofReadOnlySpan ` , ` ofSpan ` , ` skipLast ` , ` sortWithComparer ` ,
21+ ` takeLast ` , ` tryTail ` , ` tryUncons ` , ` uncons ` and the struct partial active patterns ` Cons ` and ` Nil ` .
22+ * The ` IIndexedList ` module has the functions of ` IndexedList ` for ` IImmutableList<'T> ` , without the creation and builder
23+ functions, ` binarySearch ` and ` blit ` , plus ` clear ` . Its functions keep the implementation of the input list where the
24+ result has the element type of the input, and return an ` IndexedList ` otherwise.
25+ * The ` FSharp.Collections.Immutable.Option ` and ` FSharp.Collections.Immutable.Tuple ` namespaces have ` IndexedList ` and
26+ ` IIndexedList ` modules that repeat the functions that use value options or struct tuples with options and reference
27+ tuples.
28+ * The ` IndexedListBuilder ` module works on the builder of an indexed list, and ` indexedList { } ` builds an indexed list.
1829
1930### Changed
2031
@@ -24,6 +35,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
2435 ` voption ` ; the functions that return tuples return struct tuples.
2536* ` FlatList ` : every function throws what the FSharp.Core ` Array ` function of the same name throws. ` take ` and ` splitAt `
2637 throw for a count beyond the length, and a default ` ImmutableArray ` throws ` ArgumentNullException ` .
38+ * The ` ImmutableList ` module is renamed to ` IndexedList ` , and ` reverse ` , ` withItem ` , ` insert ` , ` insertRange ` and
39+ ` removeRange ` are renamed to ` rev ` , ` updateAt ` , ` insertAt ` , ` insertManyAt ` and ` removeManyAt ` .
40+ * ` IndexedList ` : the ` try* ` functions return ` voption ` ; ` choose ` , ` pick ` , ` tryPick ` and ` unfold ` take functions that
41+ return ` voption ` , and the generator of ` unfold ` returns the element before the state, as in ` List.unfold ` ; the
42+ functions that return tuples return struct tuples.
43+ * ` IndexedList ` : every function throws what the FSharp.Core ` List ` function of the same name throws, and a ` null ` indexed
44+ list throws ` ArgumentNullException ` . ` take ` , ` skip ` and ` splitAt ` throw the exceptions of ` List ` for a count beyond the
45+ length.
46+ * ` IndexedList ` : ` append ` takes two indexed lists; ` contains ` compares in F# structural equality; ` except ` removes every
47+ element equal to an excluded item and the duplicates of the other elements, as ` List.except ` does; the sorting functions
48+ are stable and order in F# generic comparison.
2749
2850### Removed
2951
@@ -32,6 +54,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3254* ` FlatList.removeAll ` , ` removeAllWith ` , ` removeRange ` , ` sortRange ` , ` sortRangeWith ` , ` sortRangeWithComparer ` and ` sub ` ,
3355 and the ` ImmutableArray ` module alias of ` FlatList ` .
3456* The ` Seq ` module of conversions between the collections.
57+ * ` ImmutableList.index ` , ` indexWith ` , ` indexFrom ` , ` indexFromWith ` , ` indexRange ` , ` indexRangeWith ` and their ` lastIndex `
58+ counterparts: use ` IndexedList.indexOf ` , ` indexOfWith ` , ` lastIndexOf ` and ` lastIndexOfWith ` .
59+ * ` ImmutableList.clear ` , ` exceptWith ` , ` filterFold ` , ` remove ` , ` removeWith ` , ` replace ` , ` replaceWith ` , ` reverseRange ` ,
60+ ` skipUntil ` and ` takeUntil ` : use ` IndexedList.empty ` , ` IIndexedList.clear ` , ` skipWhile ` , ` takeWhile ` or the members of
61+ ` ImmutableList<'T> ` .
62+ * The ` IndexedSeq ` module, its ` ReadOnlyList ` alias and the ` IIndexedSeq<'T> ` abbreviation of ` IReadOnlyList<'T> ` .
3563
3664## [ 1.0.0] - 2020-02-23
3765
0 commit comments