Is your feature request related to a problem? Please describe.
R3 has Merge, Concat and Switch over Observable<Observable<T>>, and Observable.Merge / Observable.Concat over IEnumerable<Observable<T>>. FSharp.Control.R3 0.3.1 wraps none of them, so F# code has to call the C# extension methods.
Describe the solution you'd like
val mergeInner : sources : Observable<Observable<'T>> -> Observable<'T>
val concatInner : sources : Observable<Observable<'T>> -> Observable<'T>
val switchInner : sources : Observable<Observable<'T>> -> Observable<'T>
val mergeSeq : sources : Observable<'T> seq -> Observable<'T>
val concatSeq : sources : Observable<'T> seq -> Observable<'T>
mergeInner and concatInner keep the FSharp.Control.Reactive names.
Additional context
FSharp.Data.GraphQL uses mergeInner for incremental delivery (@defer/@stream) and merges a sequence of resolver results with Observable.Merge(IEnumerable<_>).
Is your feature request related to a problem? Please describe.
R3 has
Merge,ConcatandSwitchoverObservable<Observable<T>>, andObservable.Merge/Observable.ConcatoverIEnumerable<Observable<T>>. FSharp.Control.R3 0.3.1 wraps none of them, so F# code has to call the C# extension methods.Describe the solution you'd like
mergeInnerandconcatInnerkeep the FSharp.Control.Reactive names.Additional context
FSharp.Data.GraphQL uses
mergeInnerfor incremental delivery (@defer/@stream) and merges a sequence of resolver results withObservable.Merge(IEnumerable<_>).