diff --git a/Funcky.Async.Test/Funcky.Async.Test.csproj b/Funcky.Async.Test/Funcky.Async.Test.csproj
index d956a47e..515dba1c 100644
--- a/Funcky.Async.Test/Funcky.Async.Test.csproj
+++ b/Funcky.Async.Test/Funcky.Async.Test.csproj
@@ -13,7 +13,6 @@
-
diff --git a/Funcky.Async/PublicAPI.Shipped.txt b/Funcky.Async/PublicAPI.Shipped.txt
deleted file mode 100644
index 89a59678..00000000
--- a/Funcky.Async/PublicAPI.Shipped.txt
+++ /dev/null
@@ -1,279 +0,0 @@
-#nullable enable
-Funcky.AsyncFunctional
-Funcky.AsyncSequence
-Funcky.Extensions.AsyncEnumerableExtensions
-Funcky.IAsyncBuffer
-Funcky.Monads.ConfiguredOptionTaskAwaitable
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaitable() -> void
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.ConfiguredOptionTaskAwaiter() -> void
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.GetResult() -> void
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.ConfiguredOptionTaskAwaitable.GetAwaiter() -> Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter
-Funcky.Monads.ConfiguredOptionTaskAwaitable
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaitable() -> void
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.ConfiguredOptionTaskAwaiter() -> void
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.GetResult() -> Funcky.Monads.Option
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.ConfiguredOptionTaskAwaitable.GetAwaiter() -> Funcky.Monads.ConfiguredOptionTaskAwaitable.ConfiguredOptionTaskAwaiter
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaitable() -> void
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.ConfiguredOptionValueTaskAwaiter() -> void
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.GetResult() -> void
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.GetAwaiter() -> Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaitable() -> void
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.ConfiguredOptionValueTaskAwaiter() -> void
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.GetResult() -> Funcky.Monads.Option
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.ConfiguredOptionValueTaskAwaitable.GetAwaiter() -> Funcky.Monads.ConfiguredOptionValueTaskAwaitable.ConfiguredOptionValueTaskAwaiter
-Funcky.Monads.EitherAsyncExtensions
-Funcky.Monads.OptionAsyncExtensions
-Funcky.Monads.OptionTaskAwaiter
-Funcky.Monads.OptionTaskAwaiter.GetResult() -> void
-Funcky.Monads.OptionTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.OptionTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.OptionTaskAwaiter.OptionTaskAwaiter() -> void
-Funcky.Monads.OptionTaskAwaiter
-Funcky.Monads.OptionTaskAwaiter.GetResult() -> Funcky.Monads.Option
-Funcky.Monads.OptionTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.OptionTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.OptionTaskAwaiter.OptionTaskAwaiter() -> void
-Funcky.Monads.OptionValueTaskAwaiter
-Funcky.Monads.OptionValueTaskAwaiter.GetResult() -> void
-Funcky.Monads.OptionValueTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.OptionValueTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.OptionValueTaskAwaiter.OptionValueTaskAwaiter() -> void
-Funcky.Monads.OptionValueTaskAwaiter
-Funcky.Monads.OptionValueTaskAwaiter.GetResult() -> Funcky.Monads.Option
-Funcky.Monads.OptionValueTaskAwaiter.IsCompleted.get -> bool
-Funcky.Monads.OptionValueTaskAwaiter.OnCompleted(System.Action! continuation) -> void
-Funcky.Monads.OptionValueTaskAwaiter.OptionValueTaskAwaiter() -> void
-Funcky.Monads.ResultAsyncExtensions
-static Funcky.AsyncFunctional.RetryAsync(System.Action! action, System.Func! shouldRetry, Funcky.RetryPolicies.IRetryPolicy! retryPolicy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask
-static Funcky.AsyncFunctional.RetryAsync(System.Func>>! producer, Funcky.RetryPolicies.IRetryPolicy! retryPolicy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask>
-static Funcky.AsyncFunctional.RetryAsync(System.Func>>! producer, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask
-static Funcky.AsyncFunctional.RetryAsync(System.Func! producer, System.Func! shouldRetry, Funcky.RetryPolicies.IRetryPolicy! retryPolicy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask
-static Funcky.AsyncFunctional.RetryAwaitAsync(System.Func! action, System.Func! shouldRetry, Funcky.RetryPolicies.IRetryPolicy! retryPolicy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask
-static Funcky.AsyncFunctional.RetryAwaitAsync(System.Func>! producer, System.Func! shouldRetry, Funcky.RetryPolicies.IRetryPolicy! retryPolicy, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask
-static Funcky.AsyncSequence.Concat(params System.Collections.Generic.IAsyncEnumerable![]! sources) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Concat(System.Collections.Generic.IAsyncEnumerable!>! sources) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Concat(System.Collections.Generic.IAsyncEnumerable!>! sources) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Concat(System.Collections.Generic.IEnumerable!>! sources) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Cycle(TResult element) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.CycleRange(System.Collections.Generic.IAsyncEnumerable! sequence) -> Funcky.IAsyncBuffer!
-static Funcky.AsyncSequence.FromNullable(TResult? element) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.FromNullable(TResult? element) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.RepeatRange(System.Collections.Generic.IAsyncEnumerable! source, int count) -> Funcky.IAsyncBuffer!
-static Funcky.AsyncSequence.Return(params TResult[]! elements) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Return(TResult element) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Successors(Funcky.Monads.Option first, System.Func>>! successor) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Successors(Funcky.Monads.Option first, System.Func>! successor) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Successors(TResult first, System.Func>>! successor) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.AsyncSequence.Successors(TResult first, System.Func>! successor) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector, System.Func! elementSelector, System.Func!, TResult>! resultSelector) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector, System.Func! elementSelector, System.Func!, TResult>! resultSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector, System.Func! elementSelector) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector, System.Func! elementSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector, System.Func!, TResult>! resultSelector) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector, System.Func!, TResult>! resultSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupBy(this System.Collections.Generic.IAsyncEnumerable! source, System.Func! keySelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector, System.Func!, System.Threading.Tasks.ValueTask>! resultSelector) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector, System.Func!, System.Threading.Tasks.ValueTask>! resultSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func!, System.Threading.Tasks.ValueTask>! resultSelector) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func!, System.Threading.Tasks.ValueTask>! resultSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwait(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector, System.Func!, System.Threading.CancellationToken, System.Threading.Tasks.ValueTask>! resultSelector) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector, System.Func!, System.Threading.CancellationToken, System.Threading.Tasks.ValueTask>! resultSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func>! elementSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func!, System.Threading.CancellationToken, System.Threading.Tasks.ValueTask>! resultSelector) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Func!, System.Threading.CancellationToken, System.Threading.Tasks.ValueTask>! resultSelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AdjacentGroupByAwaitWithCancellation(this System.Collections.Generic.IAsyncEnumerable! source, System.Func>! keySelector, System.Collections.Generic.IEqualityComparer! comparer) -> System.Collections.Generic.IAsyncEnumerable!>!
-static Funcky.Extensions.AsyncEnumerableExtensions.AnyOrElse(this System.Collections.Generic.IAsyncEnumerable! source, System.Collections.Generic.IAsyncEnumerable! fallback) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AnyOrElse(this System.Collections.Generic.IAsyncEnumerable! source, System.Func!>! fallback) -> System.Collections.Generic.IAsyncEnumerable!
-static Funcky.Extensions.AsyncEnumerableExtensions.AverageOrNoneAsync(this System.Collections.Generic.IAsyncEnumerable! source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask>
-static Funcky.Extensions.AsyncEnumerableExtensions.AverageOrNoneAsync(this System.Collections.Generic.IAsyncEnumerable! source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask>
-static Funcky.Extensions.AsyncEnumerableExtensions.AverageOrNoneAsync(this System.Collections.Generic.IAsyncEnumerable! source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask>
-static Funcky.Extensions.AsyncEnumerableExtensions.AverageOrNoneAsync(this System.Collections.Generic.IAsyncEnumerable>! source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask>
-static Funcky.Extensions.AsyncEnumerableExtensions.AverageOrNoneAsync(this System.Collections.Generic.IAsyncEnumerable>! source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask>
-static Funcky.Extensions.AsyncEnumerableExtensions.AverageOrNoneAsync(this System.Collections.Generic.IAsyncEnumerable>! source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask>
-static Funcky.Extensions.AsyncEnumerableExtensions.AverageOrNoneAsync(this System.Collections.Generic.IAsyncEnumerable>! source, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.ValueTask