 ///
 /// - e.g. `let mergedStream = [stream1, stream2, ...] |> mergeInner`
 ///
-public func mergeInner<T>(upstream: Stream<Stream<T>>) -> Stream<T>
+public func mergeInner<T>(_ upstream: Stream<Stream<T>>) -> Stream<T>
 {
     return Stream<T> { progress, fulfill, reject, configure in
         

/// - Experiment: async + backpressure using blocking semaphore
///
public func asyncBackpressureBlock<T>(
    queue: DispatchQueue,
    high highCountForPause: Int,
    low lowCountForResume: Int
) -> (upstream: Stream<T>) -> Stream<T>

}

/// a.k.a Rx.repeat
public func times<T>(_ repeatCount: Int) -> (upstreamProducer: Stream<T>.Producer) -> Stream<T>.Producer
{
    return { (upstreamProducer: Stream<T>.Producer) -> Stream<T>.Producer in
        
