public static IDisposable SubscribeAsyncConcurrent <T>(this IObservable <T> source, IObserverAsync <T> observer, int maxConcurrent) =>
 source
 .Select(number => Observable.FromAsync(async() => { await observer.OnNext(number); }))
 .Merge(maxConcurrent)
 .Subscribe();
 public static IDisposable SubscribeAsync <T>(this IObservable <T> source, IObserverAsync <T> observer) =>
 source
 .Select(number => Observable.FromAsync(async() => { await observer.OnNext(number); }))
 .Concat()
 .Subscribe();