diff --git a/MoreLinq/Extensions.ToDataTable.g.cs b/MoreLinq/Extensions.ToDataTable.g.cs
index b9165678e..20380243d 100644
--- a/MoreLinq/Extensions.ToDataTable.g.cs
+++ b/MoreLinq/Extensions.ToDataTable.g.cs
@@ -27,6 +27,8 @@
//
// Source: https://github.com/dotnet/roslyn/blob/70e158ba6c2c99bd3c3fc0754af0dbf82a6d353d/docs/features/nullable-reference-types.md#generated-code
+#pragma warning disable RS0041 // Public members should not use oblivious types
+
namespace MoreLinq.Extensions
{
using System;
diff --git a/MoreLinq/Extensions.g.cs b/MoreLinq/Extensions.g.cs
index 2eccc5e1a..b25c873fb 100644
--- a/MoreLinq/Extensions.g.cs
+++ b/MoreLinq/Extensions.g.cs
@@ -27,6 +27,8 @@
//
// Source: https://github.com/dotnet/roslyn/blob/70e158ba6c2c99bd3c3fc0754af0dbf82a6d353d/docs/features/nullable-reference-types.md#generated-code
+#pragma warning disable RS0041 // Public members should not use oblivious types
+
namespace MoreLinq.Extensions
{
using System;
diff --git a/MoreLinq/Flatten.cs b/MoreLinq/Flatten.cs
index 09e107d01..564da9731 100644
--- a/MoreLinq/Flatten.cs
+++ b/MoreLinq/Flatten.cs
@@ -15,6 +15,8 @@
// limitations under the License.
#endregion
+#pragma warning disable RS0041 // Public members should not use oblivious types
+
namespace MoreLinq
{
using System;
diff --git a/MoreLinq/MoreLinq.csproj b/MoreLinq/MoreLinq.csproj
index 5e05314d4..d2d6b1c9d 100644
--- a/MoreLinq/MoreLinq.csproj
+++ b/MoreLinq/MoreLinq.csproj
@@ -152,6 +152,10 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
all
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
runtime; build; native; contentfiles; analyzers
all
@@ -254,6 +258,11 @@
+
+
+
+
+
diff --git a/MoreLinq/PublicAPI/net462/PublicAPI.Shipped.txt b/MoreLinq/PublicAPI/net462/PublicAPI.Shipped.txt
new file mode 100644
index 000000000..1f9122f06
--- /dev/null
+++ b/MoreLinq/PublicAPI/net462/PublicAPI.Shipped.txt
@@ -0,0 +1,678 @@
+#nullable enable
+MoreLinq.Experimental.AwaitQueryOptions
+MoreLinq.Experimental.AwaitQueryOptions.MaxConcurrency.get -> int?
+MoreLinq.Experimental.AwaitQueryOptions.PreserveOrder.get -> bool
+MoreLinq.Experimental.AwaitQueryOptions.Scheduler.get -> System.Threading.Tasks.TaskScheduler!
+MoreLinq.Experimental.AwaitQueryOptions.WithMaxConcurrency(int? value) -> MoreLinq.Experimental.AwaitQueryOptions!
+MoreLinq.Experimental.AwaitQueryOptions.WithPreserveOrder(bool value) -> MoreLinq.Experimental.AwaitQueryOptions!
+MoreLinq.Experimental.AwaitQueryOptions.WithScheduler(System.Threading.Tasks.TaskScheduler! value) -> MoreLinq.Experimental.AwaitQueryOptions!
+MoreLinq.Experimental.ExperimentalEnumerable
+MoreLinq.Experimental.IAwaitQuery
+MoreLinq.Experimental.IAwaitQuery.Options.get -> MoreLinq.Experimental.AwaitQueryOptions!
+MoreLinq.Experimental.IAwaitQuery.WithOptions(MoreLinq.Experimental.AwaitQueryOptions! options) -> MoreLinq.Experimental.IAwaitQuery!
+MoreLinq.Extensions.AcquireExtension
+MoreLinq.Extensions.AggregateExtension
+MoreLinq.Extensions.AggregateRightExtension
+MoreLinq.Extensions.AppendExtension
+MoreLinq.Extensions.AssertCountExtension
+MoreLinq.Extensions.AssertExtension
+MoreLinq.Extensions.AtLeastExtension
+MoreLinq.Extensions.AtMostExtension
+MoreLinq.Extensions.BacksertExtension
+MoreLinq.Extensions.BatchExtension
+MoreLinq.Extensions.CartesianExtension
+MoreLinq.Extensions.ChooseExtension
+MoreLinq.Extensions.CompareCountExtension
+MoreLinq.Extensions.ConsumeExtension
+MoreLinq.Extensions.CountBetweenExtension
+MoreLinq.Extensions.CountByExtension
+MoreLinq.Extensions.CountDownExtension
+MoreLinq.Extensions.DistinctByExtension
+MoreLinq.Extensions.EndsWithExtension
+MoreLinq.Extensions.EquiZipExtension
+MoreLinq.Extensions.EvaluateExtension
+MoreLinq.Extensions.ExactlyExtension
+MoreLinq.Extensions.ExceptByExtension
+MoreLinq.Extensions.ExcludeExtension
+MoreLinq.Extensions.FallbackIfEmptyExtension
+MoreLinq.Extensions.FillBackwardExtension
+MoreLinq.Extensions.FillForwardExtension
+MoreLinq.Extensions.FirstExtension
+MoreLinq.Extensions.FirstOrDefaultExtension
+MoreLinq.Extensions.FlattenExtension
+MoreLinq.Extensions.FoldExtension
+MoreLinq.Extensions.ForEachExtension
+MoreLinq.Extensions.FullGroupJoinExtension
+MoreLinq.Extensions.FullJoinExtension
+MoreLinq.Extensions.GroupAdjacentExtension
+MoreLinq.Extensions.IndexByExtension
+MoreLinq.Extensions.IndexExtension
+MoreLinq.Extensions.InsertExtension
+MoreLinq.Extensions.InterleaveExtension
+MoreLinq.Extensions.LagExtension
+MoreLinq.Extensions.LastExtension
+MoreLinq.Extensions.LastOrDefaultExtension
+MoreLinq.Extensions.LeadExtension
+MoreLinq.Extensions.LeftJoinExtension
+MoreLinq.Extensions.MaxByExtension
+MoreLinq.Extensions.MinByExtension
+MoreLinq.Extensions.MoveExtension
+MoreLinq.Extensions.OrderByExtension
+MoreLinq.Extensions.OrderedMergeExtension
+MoreLinq.Extensions.PadExtension
+MoreLinq.Extensions.PadStartExtension
+MoreLinq.Extensions.PairwiseExtension
+MoreLinq.Extensions.PartialSortByExtension
+MoreLinq.Extensions.PartialSortExtension
+MoreLinq.Extensions.PartitionExtension
+MoreLinq.Extensions.PermutationsExtension
+MoreLinq.Extensions.PipeExtension
+MoreLinq.Extensions.PrependExtension
+MoreLinq.Extensions.PreScanExtension
+MoreLinq.Extensions.RandomSubsetExtension
+MoreLinq.Extensions.RankByExtension
+MoreLinq.Extensions.RankExtension
+MoreLinq.Extensions.RepeatExtension
+MoreLinq.Extensions.RightJoinExtension
+MoreLinq.Extensions.RunLengthEncodeExtension
+MoreLinq.Extensions.ScanByExtension
+MoreLinq.Extensions.ScanExtension
+MoreLinq.Extensions.ScanRightExtension
+MoreLinq.Extensions.SegmentExtension
+MoreLinq.Extensions.ShuffleExtension
+MoreLinq.Extensions.SingleExtension
+MoreLinq.Extensions.SingleOrDefaultExtension
+MoreLinq.Extensions.SkipLastExtension
+MoreLinq.Extensions.SkipUntilExtension
+MoreLinq.Extensions.SliceExtension
+MoreLinq.Extensions.SortedMergeExtension
+MoreLinq.Extensions.SplitExtension
+MoreLinq.Extensions.StartsWithExtension
+MoreLinq.Extensions.SubsetsExtension
+MoreLinq.Extensions.TagFirstLastExtension
+MoreLinq.Extensions.TakeEveryExtension
+MoreLinq.Extensions.TakeLastExtension
+MoreLinq.Extensions.TakeUntilExtension
+MoreLinq.Extensions.ThenByExtension
+MoreLinq.Extensions.ToArrayByIndexExtension
+MoreLinq.Extensions.ToDataTableExtension
+MoreLinq.Extensions.ToDelimitedStringExtension
+MoreLinq.Extensions.ToDictionaryExtension
+MoreLinq.Extensions.ToHashSetExtension
+MoreLinq.Extensions.ToLookupExtension
+MoreLinq.Extensions.TraceExtension
+MoreLinq.Extensions.TransposeExtension
+MoreLinq.Extensions.WindowExtension
+MoreLinq.Extensions.WindowLeftExtension
+MoreLinq.Extensions.WindowRightExtension
+MoreLinq.Extensions.ZipLongestExtension
+MoreLinq.Extensions.ZipShortestExtension
+MoreLinq.IExtremaEnumerable
+MoreLinq.IExtremaEnumerable.Take(int count) -> System.Collections.Generic.IEnumerable!
+MoreLinq.IExtremaEnumerable.TakeLast(int count) -> System.Collections.Generic.IEnumerable!
+MoreLinq.MoreEnumerable
+MoreLinq.OrderByDirection
+MoreLinq.OrderByDirection.Ascending = 0 -> MoreLinq.OrderByDirection
+MoreLinq.OrderByDirection.Descending = 1 -> MoreLinq.OrderByDirection
+MoreLinq.SequenceException
+MoreLinq.SequenceException.SequenceException() -> void
+MoreLinq.SequenceException.SequenceException(string? message) -> void
+MoreLinq.SequenceException.SequenceException(string? message, System.Exception? innerException) -> void
+MoreLinq.SequenceException.SequenceException(System.Runtime.Serialization.SerializationInfo! info, System.Runtime.Serialization.StreamingContext context) -> void
+static MoreLinq.Experimental.ExperimentalEnumerable.Aggregate(this System.Collections.Generic.IEnumerable! source, System.Func!, System.IObservable!>! accumulator1, System.Func!, System.IObservable!>! accumulator2, System.Func!, System.IObservable!>! accumulator3, System.Func!, System.IObservable!>! accumulator4, System.Func!, System.IObservable!>! accumulator5, System.Func!, System.IObservable!>! accumulator6, System.Func!, System.IObservable!>! accumulator7, System.Func!, System.IObservable!>! accumulator8, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.Aggregate(this System.Collections.Generic.IEnumerable! source, System.Func!, System.IObservable!>! accumulator1, System.Func!, System.IObservable!>! accumulator2, System.Func!, System.IObservable!>! accumulator3, System.Func!, System.IObservable!>! accumulator4, System.Func!, System.IObservable!>! accumulator5, System.Func!, System.IObservable!>! accumulator6, System.Func!, System.IObservable!>! accumulator7, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.Aggregate(this System.Collections.Generic.IEnumerable! source, System.Func!, System.IObservable!>! accumulator1, System.Func!, System.IObservable!>! accumulator2, System.Func!, System.IObservable!>! accumulator3, System.Func!, System.IObservable!>! accumulator4, System.Func!, System.IObservable!>! accumulator5, System.Func!, System.IObservable!>! accumulator6, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.Aggregate(this System.Collections.Generic.IEnumerable! source, System.Func!, System.IObservable!>! accumulator1, System.Func!, System.IObservable!>! accumulator2, System.Func!, System.IObservable!>! accumulator3, System.Func!, System.IObservable!>! accumulator4, System.Func!, System.IObservable!>! accumulator5, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.Aggregate(this System.Collections.Generic.IEnumerable! source, System.Func!, System.IObservable!>! accumulator1, System.Func!, System.IObservable!>! accumulator2, System.Func!, System.IObservable!>! accumulator3, System.Func!, System.IObservable!>! accumulator4, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.Aggregate(this System.Collections.Generic.IEnumerable! source, System.Func!, System.IObservable!>! accumulator1, System.Func!, System.IObservable!>! accumulator2, System.Func!, System.IObservable!>! accumulator3, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.Aggregate(this System.Collections.Generic.IEnumerable! source, System.Func!, System.IObservable!>! accumulator1, System.Func!, System.IObservable!>! accumulator2, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.AsOrdered(this MoreLinq.Experimental.IAwaitQuery! source) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.AsSequential(this MoreLinq.Experimental.IAwaitQuery! source) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Experimental.ExperimentalEnumerable.AsUnordered(this MoreLinq.Experimental.IAwaitQuery! source) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.Await(this System.Collections.Generic.IEnumerable! source, System.Func!>! evaluator) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.Await(this System.Collections.Generic.IEnumerable!>! source) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.AwaitCompletion(this System.Collections.Generic.IEnumerable! source, System.Func!>! evaluator, System.Func!, TResult>! resultSelector) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.MaxConcurrency(this MoreLinq.Experimental.IAwaitQuery! source, int value) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.Memoize(this System.Collections.Generic.IEnumerable! source) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Experimental.ExperimentalEnumerable.PreserveOrder(this MoreLinq.Experimental.IAwaitQuery! source, bool value) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.Scheduler(this MoreLinq.Experimental.IAwaitQuery! source, System.Threading.Tasks.TaskScheduler! value) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Experimental.ExperimentalEnumerable.TrySingle(this System.Collections.Generic.IEnumerable! source, TCardinality zero, TCardinality one, TCardinality many, System.Func! resultSelector) -> TResult
+static MoreLinq.Experimental.ExperimentalEnumerable.TrySingle(this System.Collections.Generic.IEnumerable! source, TCardinality zero, TCardinality one, TCardinality many) -> (TCardinality Cardinality, T? Value)
+static MoreLinq.Experimental.ExperimentalEnumerable.UnboundedConcurrency(this MoreLinq.Experimental.IAwaitQuery! source) -> MoreLinq.Experimental.IAwaitQuery!
+static MoreLinq.Extensions.AcquireExtension.Acquire(this System.Collections.Generic.IEnumerable! source) -> TSource[]!
+static MoreLinq.Extensions.AggregateExtension.Aggregate(this System.Collections.Generic.IEnumerable! source, TAccumulate1 seed1, System.Func! accumulator1, TAccumulate2 seed2, System.Func! accumulator2, TAccumulate3 seed3, System.Func! accumulator3, TAccumulate4 seed4, System.Func! accumulator4, TAccumulate5 seed5, System.Func! accumulator5, TAccumulate6 seed6, System.Func! accumulator6, TAccumulate7 seed7, System.Func! accumulator7, TAccumulate8 seed8, System.Func! accumulator8, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateExtension.Aggregate(this System.Collections.Generic.IEnumerable! source, TAccumulate1 seed1, System.Func! accumulator1, TAccumulate2 seed2, System.Func! accumulator2, TAccumulate3 seed3, System.Func! accumulator3, TAccumulate4 seed4, System.Func! accumulator4, TAccumulate5 seed5, System.Func! accumulator5, TAccumulate6 seed6, System.Func! accumulator6, TAccumulate7 seed7, System.Func! accumulator7, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateExtension.Aggregate(this System.Collections.Generic.IEnumerable! source, TAccumulate1 seed1, System.Func! accumulator1, TAccumulate2 seed2, System.Func! accumulator2, TAccumulate3 seed3, System.Func! accumulator3, TAccumulate4 seed4, System.Func! accumulator4, TAccumulate5 seed5, System.Func! accumulator5, TAccumulate6 seed6, System.Func! accumulator6, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateExtension.Aggregate(this System.Collections.Generic.IEnumerable! source, TAccumulate1 seed1, System.Func! accumulator1, TAccumulate2 seed2, System.Func! accumulator2, TAccumulate3 seed3, System.Func! accumulator3, TAccumulate4 seed4, System.Func! accumulator4, TAccumulate5 seed5, System.Func! accumulator5, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateExtension.Aggregate(this System.Collections.Generic.IEnumerable! source, TAccumulate1 seed1, System.Func! accumulator1, TAccumulate2 seed2, System.Func! accumulator2, TAccumulate3 seed3, System.Func! accumulator3, TAccumulate4 seed4, System.Func! accumulator4, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateExtension.Aggregate(this System.Collections.Generic.IEnumerable! source, TAccumulate1 seed1, System.Func! accumulator1, TAccumulate2 seed2, System.Func! accumulator2, TAccumulate3 seed3, System.Func! accumulator3, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateExtension.Aggregate(this System.Collections.Generic.IEnumerable! source, TAccumulate1 seed1, System.Func! accumulator1, TAccumulate2 seed2, System.Func! accumulator2, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateRightExtension.AggregateRight(this System.Collections.Generic.IEnumerable! source, TAccumulate seed, System.Func! func, System.Func! resultSelector) -> TResult
+static MoreLinq.Extensions.AggregateRightExtension.AggregateRight(this System.Collections.Generic.IEnumerable! source, TAccumulate seed, System.Func! func) -> TAccumulate
+static MoreLinq.Extensions.AggregateRightExtension.AggregateRight(this System.Collections.Generic.IEnumerable! source, System.Func! func) -> TSource
+static MoreLinq.Extensions.AppendExtension.Append(this System.Collections.Generic.IEnumerable! head, T tail) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Extensions.AssertCountExtension.AssertCount(this System.Collections.Generic.IEnumerable! source, int count) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Extensions.AssertCountExtension.AssertCount(this System.Collections.Generic.IEnumerable! source, int count, System.Func! errorSelector) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Extensions.AssertExtension.Assert(this System.Collections.Generic.IEnumerable! source, System.Func! predicate) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Extensions.AssertExtension.Assert(this System.Collections.Generic.IEnumerable! source, System.Func! predicate, System.Func? errorSelector) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Extensions.AtLeastExtension.AtLeast(this System.Collections.Generic.IEnumerable! source, int count) -> bool
+static MoreLinq.Extensions.AtMostExtension.AtMost(this System.Collections.Generic.IEnumerable! source, int count) -> bool
+static MoreLinq.Extensions.BacksertExtension.Backsert(this System.Collections.Generic.IEnumerable! first, System.Collections.Generic.IEnumerable! second, int index) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Extensions.BatchExtension.Batch(this System.Collections.Generic.IEnumerable! source, int size, System.Func!, TResult>! resultSelector) -> System.Collections.Generic.IEnumerable!
+static MoreLinq.Extensions.BatchExtension.Batch(this System.Collections.Generic.IEnumerable! source, int size) -> System.Collections.Generic.IEnumerable!>!
+static MoreLinq.Extensions.CartesianExtension.Cartesian(this System.Collections.Generic.IEnumerable! first, System.Collections.Generic.IEnumerable! second, System.Collections.Generic.IEnumerable! third, System.Collections.Generic.IEnumerable! fourth, System.Collections.Generic.IEnumerable! fifth, System.Collections.Generic.IEnumerable! sixth, System.Collections.Generic.IEnumerable