diff --git a/.editorconfig b/.editorconfig
index f34155a5..3843643d 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -7,6 +7,7 @@ root = true
# Default settings
#############################################
[*]
+end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 4
diff --git a/.gitattributes b/.gitattributes
index 86f66966..52d24693 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,6 +1,6 @@
# Auto-detect text files and normalise line endings to LF in the repository.
# Working trees check out LF on every platform (auto, no forced CRLF).
-* text=auto
+* text eol=lf
# Source code
*.cs text diff=csharp
diff --git a/src/Primitives.Shared/Advanced/RepeatSourceCoordinator{T}.cs b/src/Primitives.Shared/Advanced/RepeatSourceCoordinator{T}.cs
new file mode 100644
index 00000000..d9fe3a17
--- /dev/null
+++ b/src/Primitives.Shared/Advanced/RepeatSourceCoordinator{T}.cs
@@ -0,0 +1,248 @@
+// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved.
+// ReactiveUI Association Incorporated licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for full license information.
+
+#if REACTIVE_SHIM
+namespace ReactiveUI.Primitives.Reactive.Advanced;
+#else
+namespace ReactiveUI.Primitives.Advanced;
+#endif
+
+/// Coordinates sequential subscriptions for .
+/// The value type.
+public sealed class RepeatSourceCoordinator : IDisposable
+{
+ /// The source sequence.
+ private readonly IObservable _source;
+
+ /// The downstream observer.
+ private readonly IObserver _observer;
+
+ /// The configured repeat count.
+ private readonly int? _repeatCount;
+
+ /// The active source subscription or queued resubscription.
+ private readonly SingleReplaceableDisposable _active = new();
+
+ /// Guards synchronous completion while a subscription is still being assigned.
+ private readonly Lock _gate = new();
+
+ /// The remaining number of finite subscriptions.
+ private int _remaining;
+
+ /// Tracks whether a source subscription is currently being created.
+ private bool _subscribing;
+
+ /// Tracks synchronous completion before the subscription disposable is returned.
+ private bool _completedWhileSubscribing;
+
+ /// Tracks the current subscription generation.
+ private int _generation;
+
+ /// The generation currently allowed to forward notifications.
+ private int _activeGeneration;
+
+ /// Tracks disposal and terminal notification state.
+ private int _disposed;
+
+ /// Initializes a new instance of the class.
+ /// The source sequence.
+ /// The number of repetitions, or for indefinite repetition.
+ /// The downstream observer.
+ ///
+ /// or is .
+ ///
+ /// is less than zero.
+ public RepeatSourceCoordinator(IObservable source, int? repeatCount, IObserver observer)
+ {
+ ArgumentExceptionHelper.ThrowIfNull(source);
+
+ if (repeatCount.HasValue)
+ {
+ ArgumentOutOfRangeExceptionHelper.ThrowIfNegative(repeatCount.GetValueOrDefault());
+ }
+
+ ArgumentExceptionHelper.ThrowIfNull(observer);
+
+ _source = source;
+ _observer = observer;
+ _repeatCount = repeatCount;
+ _remaining = repeatCount.GetValueOrDefault();
+ }
+
+ ///
+ public void Dispose()
+ {
+ if (Interlocked.Exchange(ref _disposed, 1) != 0)
+ {
+ return;
+ }
+
+ _active.Dispose();
+ }
+
+ /// Starts the repeated subscription loop.
+ /// The coordinator that owns the subscription cleanup.
+ public RepeatSourceCoordinator Run()
+ {
+ ScheduleNext();
+ return this;
+ }
+
+ /// Handles completion for the active source subscription.
+ /// The source subscription generation.
+ internal void OnCompleted(int generation)
+ {
+ if (!IsCurrentGeneration(generation))
+ {
+ return;
+ }
+
+ ScheduleNext();
+ }
+
+ /// Handles failure for the active source subscription.
+ /// The source subscription generation.
+ /// The source error.
+ internal void OnError(int generation, Exception error)
+ {
+ if (!IsCurrentGeneration(generation) || Interlocked.Exchange(ref _disposed, 1) != 0)
+ {
+ return;
+ }
+
+ try
+ {
+ _observer.OnError(error);
+ }
+ finally
+ {
+ _active.Dispose();
+ }
+ }
+
+ /// Forwards a value from the active source subscription.
+ /// The source subscription generation.
+ /// The source value.
+ internal void OnNext(int generation, T value)
+ {
+ if (IsDisposed() || !IsCurrentGeneration(generation))
+ {
+ return;
+ }
+
+ _observer.OnNext(value);
+ }
+
+ /// Completes the downstream observer once.
+ internal void Complete()
+ {
+ if (Interlocked.Exchange(ref _disposed, 1) != 0)
+ {
+ return;
+ }
+
+ try
+ {
+ _observer.OnCompleted();
+ }
+ finally
+ {
+ _active.Dispose();
+ }
+ }
+
+ /// Schedules the next source subscription on the current-thread trampoline.
+ internal void ScheduleNext()
+ {
+ if (IsDisposed())
+ {
+ return;
+ }
+
+ lock (_gate)
+ {
+ _completedWhileSubscribing |= _subscribing;
+ }
+
+ var scheduled = Sequencer.CurrentThread.Schedule(SubscribeNext);
+ if (ReferenceEquals(scheduled, EmptyDisposable.Instance) || IsDisposed())
+ {
+ return;
+ }
+
+ _active.Create(scheduled);
+ }
+
+ /// Subscribes to the source for the next repetition.
+ internal void SubscribeNext()
+ {
+ if (IsDisposed())
+ {
+ return;
+ }
+
+ if (_repeatCount is not null && _remaining == 0)
+ {
+ Complete();
+ return;
+ }
+
+ if (_repeatCount is not null)
+ {
+ _remaining--;
+ }
+
+ var generation = Interlocked.Increment(ref _generation);
+ Volatile.Write(ref _activeGeneration, generation);
+ RepeatSourceWitness observer = new(this, generation);
+ IDisposable? subscription = null;
+ var completedWhileSubscribing = false;
+ lock (_gate)
+ {
+ _subscribing = true;
+ _completedWhileSubscribing = false;
+ }
+
+ try
+ {
+ subscription = _source.Subscribe(observer);
+ }
+ catch (Exception error)
+ {
+ observer.OnError(error);
+ }
+ finally
+ {
+ lock (_gate)
+ {
+ completedWhileSubscribing = _completedWhileSubscribing;
+ _completedWhileSubscribing = false;
+ _subscribing = false;
+ }
+ }
+
+ if (subscription is null)
+ {
+ return;
+ }
+
+ if (completedWhileSubscribing || IsDisposed())
+ {
+ subscription.Dispose();
+ return;
+ }
+
+ _active.Create(subscription);
+ }
+
+ /// Gets a value indicating whether the coordinator is disposed.
+ /// when the coordinator is disposed; otherwise, .
+ private bool IsDisposed() => Volatile.Read(ref _disposed) != 0;
+
+ /// Gets a value indicating whether a notification belongs to the active generation.
+ /// The source subscription generation.
+ /// when the notification belongs to the active generation; otherwise, .
+ private bool IsCurrentGeneration(int generation) =>
+ Volatile.Read(ref _activeGeneration) == generation;
+}
diff --git a/src/Primitives.Shared/Advanced/RepeatSourceSignal{T}.cs b/src/Primitives.Shared/Advanced/RepeatSourceSignal{T}.cs
new file mode 100644
index 00000000..8213c294
--- /dev/null
+++ b/src/Primitives.Shared/Advanced/RepeatSourceSignal{T}.cs
@@ -0,0 +1,59 @@
+// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved.
+// ReactiveUI Association Incorporated licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for full license information.
+
+#if REACTIVE_SHIM
+namespace ReactiveUI.Primitives.Reactive.Advanced;
+#else
+namespace ReactiveUI.Primitives.Advanced;
+#endif
+
+/// Repeats a source observable by resubscribing after each successful completion.
+/// The value type.
+public sealed class RepeatSourceSignal : IRequireCurrentThread
+{
+ /// The source sequence.
+ private readonly IObservable _source;
+
+ /// The number of repetitions, or for indefinite repetition.
+ private readonly int? _repeatCount;
+
+ /// Initializes a new instance of the class.
+ /// The source sequence.
+ /// The number of repetitions, or for indefinite repetition.
+ /// is .
+ /// is less than zero.
+ public RepeatSourceSignal(IObservable source, int? repeatCount)
+ {
+ ArgumentExceptionHelper.ThrowIfNull(source);
+
+ if (repeatCount.HasValue)
+ {
+ ArgumentOutOfRangeExceptionHelper.ThrowIfNegative(repeatCount.GetValueOrDefault());
+ }
+
+ _source = source;
+ _repeatCount = repeatCount;
+ }
+
+ ///
+ public bool IsRequiredSubscribeOnCurrentThread() => true;
+
+ ///
+ public IDisposable Subscribe(IObserver observer)
+ {
+ ArgumentExceptionHelper.ThrowIfNull(observer);
+
+ return SignalSubscription.Subscribe(observer, true, SubscribeCore);
+ }
+
+ /// Starts the repeat coordinator once the subscription lifetime has been created.
+ /// The downstream observer.
+ /// The cancellation handle owned by the subscription helper.
+ /// The repeat coordinator.
+ private RepeatSourceCoordinator SubscribeCore(IObserver observer, IDisposable cancel)
+ {
+ RepeatSourceCoordinator coordinator = new(_source, _repeatCount, new GuardedWitness(observer, cancel));
+ return coordinator.Run();
+ }
+}
diff --git a/src/Primitives.Shared/Advanced/RepeatSourceWitness{T}.cs b/src/Primitives.Shared/Advanced/RepeatSourceWitness{T}.cs
new file mode 100644
index 00000000..a177ccf8
--- /dev/null
+++ b/src/Primitives.Shared/Advanced/RepeatSourceWitness{T}.cs
@@ -0,0 +1,68 @@
+// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved.
+// ReactiveUI Association Incorporated licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for full license information.
+
+#if REACTIVE_SHIM
+namespace ReactiveUI.Primitives.Reactive.Advanced;
+#else
+namespace ReactiveUI.Primitives.Advanced;
+#endif
+
+/// Per-subscription witness that suppresses duplicate terminal notifications.
+/// The value type.
+public sealed class RepeatSourceWitness : IObserver
+{
+ /// The owning repeat coordinator.
+ private readonly RepeatSourceCoordinator _parent;
+
+ /// The source subscription generation.
+ private readonly int _generation;
+
+ /// Tracks whether this source subscription has already terminated.
+ private int _terminated;
+
+ /// Initializes a new instance of the class.
+ /// The owning repeat coordinator.
+ /// The source subscription generation.
+ /// is .
+ public RepeatSourceWitness(RepeatSourceCoordinator parent, int generation)
+ {
+ ArgumentExceptionHelper.ThrowIfNull(parent);
+
+ _parent = parent;
+ _generation = generation;
+ }
+
+ ///
+ public void OnCompleted()
+ {
+ if (Interlocked.Exchange(ref _terminated, 1) != 0)
+ {
+ return;
+ }
+
+ _parent.OnCompleted(_generation);
+ }
+
+ ///
+ public void OnError(Exception error)
+ {
+ if (Interlocked.Exchange(ref _terminated, 1) != 0)
+ {
+ return;
+ }
+
+ _parent.OnError(_generation, error);
+ }
+
+ ///
+ public void OnNext(T value)
+ {
+ if (Volatile.Read(ref _terminated) != 0)
+ {
+ return;
+ }
+
+ _parent.OnNext(_generation, value);
+ }
+}
diff --git a/src/Primitives.Shared/SignalOperatorParityMixins.RxNames.Repeat.cs b/src/Primitives.Shared/SignalOperatorParityMixins.RxNames.Repeat.cs
new file mode 100644
index 00000000..d2a76bfa
--- /dev/null
+++ b/src/Primitives.Shared/SignalOperatorParityMixins.RxNames.Repeat.cs
@@ -0,0 +1,43 @@
+// Copyright (c) 2019-2026 ReactiveUI Association Incorporated. All rights reserved.
+// ReactiveUI Association Incorporated licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for full license information.
+
+#if REACTIVE_SHIM
+namespace ReactiveUI.Primitives.Reactive;
+#else
+namespace ReactiveUI.Primitives;
+#endif
+
+/// System.Reactive-named repetition operators for observable sources.
+public static partial class LinqExtensions
+{
+ /// System.Reactive-named repetition operators for an observable source sequence.
+ /// The source sequence.
+ /// The value type.
+ extension(IObservable source)
+ {
+ /// Repeats the source sequence indefinitely.
+ /// An observable sequence that repeats the source sequence indefinitely.
+ /// is .
+ public IObservable Repeat()
+ {
+ ArgumentExceptionHelper.ThrowIfNull(source);
+
+ return new RepeatSourceSignal(source, null);
+ }
+
+ /// Repeats the source sequence a fixed number of times.
+ /// The number of times to repeat the source sequence.
+ /// An observable sequence that repeats the source sequence times.
+ /// is .
+ /// is less than zero.
+ public IObservable Repeat(int repeatCount)
+ {
+ ArgumentExceptionHelper.ThrowIfNull(source);
+
+ ArgumentOutOfRangeExceptionHelper.ThrowIfNegative(repeatCount);
+
+ return repeatCount == 0 ? ImmutableEmptySignal.Instance : new RepeatSourceSignal(source, repeatCount);
+ }
+ }
+}
diff --git a/src/ReactiveUI.Primitives.Core/PublicAPI/net10.0/PublicAPI.Shipped.txt b/src/ReactiveUI.Primitives.Core/PublicAPI/net10.0/PublicAPI.Shipped.txt
index 7733fabd..aeb8afc0 100644
--- a/src/ReactiveUI.Primitives.Core/PublicAPI/net10.0/PublicAPI.Shipped.txt
+++ b/src/ReactiveUI.Primitives.Core/PublicAPI/net10.0/PublicAPI.Shipped.txt
@@ -427,6 +427,192 @@ ReactiveUI.Primitives.Core.TimeInterval.Value.get -> T
ReactiveUI.Primitives.ExceptionExtensions
ReactiveUI.Primitives.ExceptionExtensions.extension(System.Exception!)
ReactiveUI.Primitives.ExceptionExtensions.extension(System.Exception!).Throw() -> void
+ReactiveUI.Primitives.Extensions.ConcurrencyLimiter
+ReactiveUI.Primitives.Extensions.ConcurrencyLimiter.ConcurrencyLimiter(System.Collections.Generic.IEnumerable!>! taskFunctions, int maxConcurrency) -> void
+ReactiveUI.Primitives.Extensions.ConcurrencyLimiter.Observable.get -> System.IObservable!
+ReactiveUI.Primitives.Extensions.ConcurrencyLimiter.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Continuation
+ReactiveUI.Primitives.Extensions.Continuation.CompletedPhases.get -> long
+ReactiveUI.Primitives.Extensions.Continuation.Continuation() -> void
+ReactiveUI.Primitives.Extensions.Continuation.Dispose() -> void
+ReactiveUI.Primitives.Extensions.Continuation.Lock(T item, System.IObserver<(T value, System.IDisposable! Sync)>? observer) -> System.Threading.Tasks.Task!
+ReactiveUI.Primitives.Extensions.Continuation.LockValueTask(T item, System.IObserver<(T value, System.IDisposable! Sync)>? observer) -> System.Threading.Tasks.ValueTask
+ReactiveUI.Primitives.Extensions.CurrentValueSubject
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.AsObservable() -> System.IObservable!
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.CurrentValueSubject(T initialValue) -> void
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.Dispose() -> void
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.OnCompleted() -> void
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.OnError(System.Exception! error) -> void
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.OnNext(T value) -> void
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.CurrentValueSubject.Value.get -> T
+ReactiveUI.Primitives.Extensions.DrainNotificationKind
+ReactiveUI.Primitives.Extensions.DrainNotificationKind.Completed = 2 -> ReactiveUI.Primitives.Extensions.DrainNotificationKind
+ReactiveUI.Primitives.Extensions.DrainNotificationKind.Error = 1 -> ReactiveUI.Primitives.Extensions.DrainNotificationKind
+ReactiveUI.Primitives.Extensions.DrainNotificationKind.Next = 0 -> ReactiveUI.Primitives.Extensions.DrainNotificationKind
+ReactiveUI.Primitives.Extensions.FirstAsTaskHelper
+ReactiveUI.Primitives.Extensions.FirstAsValueTaskHelper
+ReactiveUI.Primitives.Extensions.Heartbeat
+ReactiveUI.Primitives.Extensions.Heartbeat.Equals(ReactiveUI.Primitives.Extensions.Heartbeat other) -> bool
+ReactiveUI.Primitives.Extensions.Heartbeat.Heartbeat() -> void
+ReactiveUI.Primitives.Extensions.Heartbeat.Heartbeat(T? update) -> void
+ReactiveUI.Primitives.Extensions.Heartbeat.IsHeartbeat.get -> bool
+ReactiveUI.Primitives.Extensions.Heartbeat.Update.get -> T?
+ReactiveUI.Primitives.Extensions.IDrainTarget
+ReactiveUI.Primitives.Extensions.IDrainTarget.Drain() -> void
+ReactiveUI.Primitives.Extensions.IHeartbeat
+ReactiveUI.Primitives.Extensions.IHeartbeat.IsHeartbeat.get -> bool
+ReactiveUI.Primitives.Extensions.IHeartbeat.Update.get -> T?
+ReactiveUI.Primitives.Extensions.IStale
+ReactiveUI.Primitives.Extensions.IStale.IsStale.get -> bool
+ReactiveUI.Primitives.Extensions.IStale.Update.get -> T?
+ReactiveUI.Primitives.Extensions.Observables
+ReactiveUI.Primitives.Extensions.ObserverArrayHelpers
+ReactiveUI.Primitives.Extensions.ObserverExtensions
+ReactiveUI.Primitives.Extensions.ObserverExtensions.extension(System.IObserver!)
+ReactiveUI.Primitives.Extensions.ObserverExtensions.extension(System.IObserver!).FastForEach(System.Collections.Generic.IEnumerable! source) -> void
+ReactiveUI.Primitives.Extensions.Operators.BinaryMinMaxObservable
+ReactiveUI.Primitives.Extensions.Operators.BinaryMinMaxObservable.BinaryMinMaxObservable(System.IObservable! left, System.IObservable! right, bool emitMaximum) -> void
+ReactiveUI.Primitives.Extensions.Operators.BinaryMinMaxObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.BooleanReduceObservable
+ReactiveUI.Primitives.Extensions.Operators.BooleanReduceObservable.BooleanReduceObservable(System.Collections.Generic.IEnumerable!>! sources, bool target) -> void
+ReactiveUI.Primitives.Extensions.Operators.BooleanReduceObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.BufferUntilObservable
+ReactiveUI.Primitives.Extensions.Operators.BufferUntilObservable.BufferUntilObservable(System.IObservable! source, char startsWith, char endsWith) -> void
+ReactiveUI.Primitives.Extensions.Operators.BufferUntilObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.CatchAndReturnWithFactoryObservable
+ReactiveUI.Primitives.Extensions.Operators.CatchAndReturnWithFactoryObservable.CatchAndReturnWithFactoryObservable(System.IObservable! source, System.Func! fallbackFactory) -> void
+ReactiveUI.Primitives.Extensions.Operators.CatchAndReturnWithFactoryObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.CatchIgnoreEmptyObservable
+ReactiveUI.Primitives.Extensions.Operators.CatchIgnoreEmptyObservable.CatchIgnoreEmptyObservable(System.IObservable! source) -> void
+ReactiveUI.Primitives.Extensions.Operators.CatchIgnoreEmptyObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.CatchIgnoreObservable
+ReactiveUI.Primitives.Extensions.Operators.CatchIgnoreObservable.CatchIgnoreObservable(System.IObservable! source, System.Action! errorAction) -> void
+ReactiveUI.Primitives.Extensions.Operators.CatchIgnoreObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.CatchReturnObservable
+ReactiveUI.Primitives.Extensions.Operators.CatchReturnObservable.CatchReturnObservable(System.IObservable! source, T fallback) -> void
+ReactiveUI.Primitives.Extensions.Operators.CatchReturnObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.DoOnDisposeObservable
+ReactiveUI.Primitives.Extensions.Operators.DoOnDisposeObservable.DoOnDisposeObservable(System.IObservable! source, System.Action! disposeAction) -> void
+ReactiveUI.Primitives.Extensions.Operators.DoOnDisposeObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.DoOnSubscribeObservable
+ReactiveUI.Primitives.Extensions.Operators.DoOnSubscribeObservable.DoOnSubscribeObservable(System.IObservable! source, System.Action! action) -> void
+ReactiveUI.Primitives.Extensions.Operators.DoOnSubscribeObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.DropIfBusyObservable
+ReactiveUI.Primitives.Extensions.Operators.DropIfBusyObservable.DropIfBusyObservable(System.IObservable! source, System.Func! asyncAction) -> void
+ReactiveUI.Primitives.Extensions.Operators.DropIfBusyObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.FilterRegexObservable
+ReactiveUI.Primitives.Extensions.Operators.FilterRegexObservable.FilterRegexObservable(System.IObservable! source, System.Text.RegularExpressions.Regex! regex) -> void
+ReactiveUI.Primitives.Extensions.Operators.FilterRegexObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable.FirstMatchFromCandidatesObservable(System.Collections.Generic.IReadOnlyList! candidates, System.Func!>! project, System.Func! transform, System.Func! predicate, TResult fallback) -> void
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable.SyncProbe
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable.SyncProbe.OnCompleted() -> void
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable.SyncProbe.OnError(System.Exception! error) -> void
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable.SyncProbe.OnNext(TRaw value) -> void
+ReactiveUI.Primitives.Extensions.Operators.FirstMatchFromCandidatesObservable.SyncProbe.SyncProbe() -> void
+ReactiveUI.Primitives.Extensions.Operators.LatestOrDefaultObservable
+ReactiveUI.Primitives.Extensions.Operators.LatestOrDefaultObservable.LatestOrDefaultObservable(System.IObservable! source, T defaultValue) -> void
+ReactiveUI.Primitives.Extensions.Operators.LatestOrDefaultObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.LogErrorsObservable
+ReactiveUI.Primitives.Extensions.Operators.LogErrorsObservable.LogErrorsObservable(System.IObservable! source, System.Action! logger) -> void
+ReactiveUI.Primitives.Extensions.Operators.LogErrorsObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.MinMaxObservable
+ReactiveUI.Primitives.Extensions.Operators.MinMaxObservable.MinMaxObservable(System.Collections.Generic.IReadOnlyList!>! sources, bool emitMaximum) -> void
+ReactiveUI.Primitives.Extensions.Operators.MinMaxObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.NotObservable
+ReactiveUI.Primitives.Extensions.Operators.NotObservable.NotObservable(System.IObservable! source) -> void
+ReactiveUI.Primitives.Extensions.Operators.NotObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.PairwiseObservable
+ReactiveUI.Primitives.Extensions.Operators.PairwiseObservable.PairwiseObservable(System.IObservable! source) -> void
+ReactiveUI.Primitives.Extensions.Operators.PairwiseObservable.Subscribe(System.IObserver<(T Previous, T Current)>! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.PartitionObservable
+ReactiveUI.Primitives.Extensions.Operators.PartitionObservable.False.get -> System.IObservable!
+ReactiveUI.Primitives.Extensions.Operators.PartitionObservable.PartitionObservable(System.IObservable! source, System.Func! predicate) -> void
+ReactiveUI.Primitives.Extensions.Operators.PartitionObservable.True.get -> System.IObservable!
+ReactiveUI.Primitives.Extensions.Operators.PropertyChangedObservable
+ReactiveUI.Primitives.Extensions.Operators.PropertyChangedObservable.PropertyChangedObservable(T source, string! propertyName, System.Func! getter) -> void
+ReactiveUI.Primitives.Extensions.Operators.PropertyChangedObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.ReplayLastOnSubscribeObservable
+ReactiveUI.Primitives.Extensions.Operators.ReplayLastOnSubscribeObservable.ReplayLastOnSubscribeObservable(System.IObservable! source, T initialValue) -> void
+ReactiveUI.Primitives.Extensions.Operators.ReplayLastOnSubscribeObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.RetryForeverObservable
+ReactiveUI.Primitives.Extensions.Operators.RetryForeverObservable.RetryForeverObservable(System.IObservable! source) -> void
+ReactiveUI.Primitives.Extensions.Operators.RetryForeverObservable.Subscribe(System.IObserver! observer) -> System.IDisposable!
+ReactiveUI.Primitives.Extensions.Operators.SampleLatestObservable
+ReactiveUI.Primitives.Extensions.Operators.SampleLatestObservable.SampleLatestObservable(System.IObservable! source, System.IObservable