import Foundation import enum Result.NoError // MARK: Removed Types and APIs in ReactiveCocoa 5.0. // Renamed Protocols @available(*, unavailable, renamed:"ActionProtocol") public enum ActionType {} @available(*, unavailable, renamed:"SignalProtocol") public enum SignalType {} @available(*, unavailable, renamed:"SignalProducerProtocol") public enum SignalProducerType {} @available(*, unavailable, renamed:"PropertyProtocol") public enum PropertyType {} @available(*, unavailable, renamed:"MutablePropertyProtocol") public enum MutablePropertyType {} @available(*, unavailable, renamed:"ObserverProtocol") public enum ObserverType {} @available(*, unavailable, renamed:"SchedulerProtocol") public enum SchedulerType {} @available(*, unavailable, renamed:"DateSchedulerProtocol") public enum DateSchedulerType {} @available(*, unavailable, renamed:"OptionalProtocol") public enum OptionalType {} @available(*, unavailable, renamed:"EventLoggerProtocol") public enum EventLoggerType {} @available(*, unavailable, renamed:"EventProtocol") public enum EventType {} // Renamed and Removed Types @available(*, unavailable, renamed:"Property") public struct AnyProperty {} @available(*, unavailable, message:"Use 'Property(value:)' to create a constant property instead. 'ConstantProperty' is removed in RAC 5.0.") public struct ConstantProperty {} // Renamed Properties extension Disposable { @available(*, unavailable, renamed:"isDisposed") public var disposed: Bool { fatalError() } } extension SerialDisposable { @available(*, unavailable, renamed:"inner") public var innerDisposable: Disposable? { get { fatalError() } set { fatalError() } } } extension ScopedDisposable { @available(*, unavailable, renamed:"inner") public var innerDisposable: Disposable { fatalError() } } extension ActionProtocol { @available(*, unavailable, renamed:"isEnabled") public var enabled: Bool { fatalError() } @available(*, unavailable, renamed:"isExecuting") public var executing: Bool { fatalError() } } // Renamed Enum cases extension Event { @available(*, unavailable, renamed:"value") public static var Next: Event { fatalError() } @available(*, unavailable, renamed:"failed") public static var Failed: Event { fatalError() } @available(*, unavailable, renamed:"completed") public static var Completed: Event { fatalError() } @available(*, unavailable, renamed:"interrupted") public static var Interrupted: Event { fatalError() } } extension ActionError { @available(*, unavailable, renamed:"producerFailed") public static var ProducerError: ActionError { fatalError() } @available(*, unavailable, renamed:"disabled") public static var NotEnabled: ActionError { fatalError() } } extension FlattenStrategy { @available(*, unavailable, renamed:"latest") public static var Latest: FlattenStrategy { fatalError() } @available(*, unavailable, renamed:"concat") public static var Concat: FlattenStrategy { fatalError() } @available(*, unavailable, renamed:"merge") public static var Merge: FlattenStrategy { fatalError() } } extension LoggingEvent.Signal { @available(*, unavailable, renamed:"next") public static var Next: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"completed") public static var Completed: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"failed") public static var Failed: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"terminated") public static var Terminated: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"disposed") public static var Disposed: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"interrupted") public static var Interrupted: LoggingEvent.Signal { fatalError() } } extension LoggingEvent.SignalProducer { @available(*, unavailable, renamed:"started") public static var Started: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"next") public static var Next: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"completed") public static var Completed: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"failed") public static var Failed: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"terminated") public static var Terminated: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"disposed") public static var Disposed: LoggingEvent.Signal { fatalError() } @available(*, unavailable, renamed:"interrupted") public static var Interrupted: LoggingEvent.Signal { fatalError() } } // Methods extension Bag { @available(*, unavailable, renamed:"remove(using:)") public func removeValueForToken(_ token: RemovalToken) { fatalError() } } extension CompositeDisposable { @available(*, unavailable, renamed:"add(_:)") public func addDisposable(_ d: Disposable) -> DisposableHandle { fatalError() } } extension Observer { @available(*, unavailable, renamed: "init(value:failed:completed:interrupted:)") public convenience init( next: ((Value) -> Void)? = nil, failed: ((Error) -> Void)? = nil, completed: (() -> Void)? = nil, interrupted: (() -> Void)? = nil ) { fatalError() } } extension ObserverProtocol { @available(*, unavailable, renamed: "send(value:)") public func sendNext(_ value: Value) { fatalError() } @available(*, unavailable, renamed: "send(error:)") public func sendFailed(_ error: Error) { fatalError() } } extension SignalProtocol { @available(*, unavailable, renamed:"take(first:)") public func take(_ count: Int) -> Signal { fatalError() } @available(*, unavailable, renamed:"take(last:)") public func takeLast(_ count: Int) -> Signal { fatalError() } @available(*, unavailable, renamed:"skip(first:)") public func skip(_ count: Int) -> Signal { fatalError() } @available(*, unavailable, renamed:"observe(on:)") public func observeOn(_ scheduler: SchedulerProtocol) -> Signal { fatalError() } @available(*, unavailable, renamed:"combineLatest(with:)") public func combineLatestWith(_ otherSignal: S) -> Signal<(Value, S.Value), Error> { fatalError() } @available(*, unavailable, renamed:"zip(with:)") public func zipWith(_ otherSignal: S) -> Signal<(Value, S.Value), Error> { fatalError() } @available(*, unavailable, renamed:"take(until:)") public func takeUntil(_ trigger: Signal<(), NoError>) -> Signal { fatalError() } @available(*, unavailable, renamed:"take(untilReplacement:)") public func takeUntilReplacement(_ replacement: Signal) -> Signal { fatalError() } @available(*, unavailable, renamed:"skip(until:)") public func skipUntil(_ trigger: Signal<(), NoError>) -> Signal { fatalError() } @available(*, unavailable, renamed:"skip(while:)") public func skipWhile(_ predicate: (Value) -> Bool) -> Signal { fatalError() } @available(*, unavailable, renamed:"take(while:)") public func takeWhile(_ predicate: (Value) -> Bool) -> Signal { fatalError() } @available(*, unavailable, renamed:"timeout(after:raising:on:)") public func timeoutWithError(_ error: Error, afterInterval: TimeInterval, onScheduler: DateSchedulerProtocol) -> Signal { fatalError() } @available(*, unavailable, message: "This Signal may emit errors which must be handled explicitly, or observed using `observeResult(_:)`") public func observeNext(_ next: (Value) -> Void) -> Disposable? { fatalError() } } extension SignalProtocol where Value: OptionalProtocol { @available(*, unavailable, renamed:"skipNil()") public func ignoreNil() -> SignalProducer { fatalError() } } extension SignalProtocol where Error == NoError { @available(*, unavailable, renamed: "observeValues") public func observeNext(_ next: (Value) -> Void) -> Disposable? { fatalError() } } extension SignalProducerProtocol { @available(*, unavailable, renamed:"take(first:)") public func take(_ count: Int) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"take(last:)") public func takeLast(_ count: Int) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"skip(first:)") public func skip(_ count: Int) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"retry(upTo:)") public func retry(_ count: Int) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"observe(on:)") public func observeOn(_ scheduler: SchedulerProtocol) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"start(on:)") public func startOn(_ scheduler: SchedulerProtocol) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"combineLatest(with:)") public func combineLatestWith(_ otherProducer: SignalProducer) -> SignalProducer<(Value, U), Error> { fatalError() } @available(*, unavailable, renamed:"combineLatest(with:)") public func combineLatestWith(_ otherSignal: Signal) -> SignalProducer<(Value, U), Error> { fatalError() } @available(*, unavailable, renamed:"zip(with:)") public func zipWith(_ otherProducer: SignalProducer) -> SignalProducer<(Value, U), Error> { fatalError() } @available(*, unavailable, renamed:"zip(with:)") public func zipWith(_ otherSignal: Signal) -> SignalProducer<(Value, U), Error> { fatalError() } @available(*, unavailable, renamed:"take(until:)") public func takeUntil(_ trigger: Signal<(), NoError>) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"take(until:)") public func takeUntil(_ trigger: SignalProducer<(), NoError>) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"take(untilReplacement:)") public func takeUntilReplacement(_ replacement: Signal) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"take(untilReplacement:)") public func takeUntilReplacement(_ replacement: SignalProducer) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"skip(until:)") public func skipUntil(_ trigger: Signal<(), NoError>) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"skip(until:)") public func skipUntil(_ trigger: SignalProducer<(), NoError>) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"skip(while:)") public func skipWhile(_ predicate: (Value) -> Bool) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"take(while:)") public func takeWhile(_ predicate: (Value) -> Bool) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"timeout(after:raising:on:)") public func timeoutWithError(_ error: Error, afterInterval: TimeInterval, onScheduler: DateSchedulerProtocol) -> SignalProducer { fatalError() } @available(*, unavailable, message:"This SignalProducer may emit errors which must be handled explicitly, or observed using `startWithResult(_:)`.") public func startWithNext(_ next: (Value) -> Void) -> Disposable { fatalError() } @available(*, unavailable, renamed:"repeat(_:)") public func times(_ count: Int) -> SignalProducer { fatalError() } } extension SignalProducerProtocol where Value: OptionalProtocol { @available(*, unavailable, renamed:"skipNil()") public func ignoreNil() -> SignalProducer { fatalError() } } extension SignalProducerProtocol where Error == NoError { @available(*, unavailable, renamed: "startWithValues") public func startWithNext(_ value: @escaping (Value) -> Void) -> Disposable { fatalError() } } extension SignalProducer { @available(*, unavailable, message:"Use properties instead. `buffer(_:)` is removed in RAC 5.0.") public static func buffer(_ capacity: Int) -> (SignalProducer, Signal.Observer) { fatalError() } @available(*, unavailable, renamed:"init(_:)") public init(signal: S) where S.Value == Value, S.Error == Error { fatalError() } @available(*, unavailable, renamed:"init(_:)") public init(values: S) where S.Iterator.Element == Value { fatalError() } } extension PropertyProtocol { @available(*, unavailable, renamed:"combineLatest(with:)") public func combineLatestWith(_ otherProperty: P) -> Property<(Value, P.Value)> { fatalError() } @available(*, unavailable, renamed:"zip(with:)") public func zipWith(_ otherProperty: P) -> Property<(Value, P.Value)> { fatalError() } } extension Property { @available(*, unavailable, renamed:"Property(initial:then:)") public convenience init(initialValue: Value, producer: SignalProducer) { fatalError() } @available(*, unavailable, renamed:"Property(initial:then:)") public convenience init(initialValue: Value, signal: Signal) { fatalError() } } extension DateSchedulerProtocol { @available(*, unavailable, renamed:"schedule(after:action:)") func scheduleAfter(date: Date, _ action: () -> Void) -> Disposable? { fatalError() } @available(*, unavailable, renamed:"schedule(after:interval:leeway:)") func scheduleAfter(date: Date, repeatingEvery: TimeInterval, withLeeway: TimeInterval, action: () -> Void) -> Disposable? { fatalError() } @available(*, unavailable, message:"schedule(after:interval:leeway:action:) now uses DispatchTimeInterval") func schedule(after date: Date, interval: TimeInterval, leeway: TimeInterval, action: @escaping () -> Void) -> Disposable? { fatalError() } @available(*, unavailable, message:"schedule(after:interval:action:) now uses DispatchTimeInterval") public func schedule(after date: Date, interval: TimeInterval, action: @escaping () -> Void) -> Disposable? { fatalError() } } extension TestScheduler { @available(*, unavailable, renamed:"advance(by:)") public func advanceByInterval(_ interval: TimeInterval) { fatalError() } @available(*, unavailable, renamed:"advance(to:)") public func advanceToDate(_ date: Date) { fatalError() } @available(*, unavailable, message:"advance(by:) now uses DispatchTimeInterval") public func advance(by interval: TimeInterval) { fatalError() } @available(*, unavailable, message:"rewind(by:) now uses DispatchTimeInterval") public func rewind(by interval: TimeInterval) { fatalError() } } extension QueueScheduler { @available(*, unavailable, renamed:"main") public static var mainQueueScheduler: QueueScheduler { fatalError() } } extension NotificationCenter { @available(*, unavailable, renamed:"reactive.notifications") public func rac_notifications(forName name: Notification.Name?, object: AnyObject? = nil) -> SignalProducer { fatalError() } } extension URLSession { @available(*, unavailable, renamed:"reactive.data") public func rac_data(with request: URLRequest) -> SignalProducer<(Data, URLResponse), NSError> { fatalError() } } extension Reactive where Base: URLSession { @available(*, unavailable, message:"Use the overload which returns `SignalProducer<(Data, URLResponse), AnyError>` instead, and cast `AnyError.error` to `NSError` as you need") public func data(with request: URLRequest) -> SignalProducer<(Data, URLResponse), NSError> { fatalError() } } // Free functions @available(*, unavailable, message:"timer(interval:on:) now uses DispatchTimeInterval") public func timer(interval: TimeInterval, on scheduler: DateSchedulerProtocol) -> SignalProducer { fatalError() } @available(*, unavailable, message:"timer(interval:on:leeway:) now uses DispatchTimeInterval") public func timer(interval: TimeInterval, on scheduler: DateSchedulerProtocol, leeway: TimeInterval) -> SignalProducer { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal) -> Signal<(A, B), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal) -> Signal<(A, B, C), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal) -> Signal<(A, B, C, D), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal) -> Signal<(A, B, C, D, E), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal) -> Signal<(A, B, C, D, E, F), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal) -> Signal<(A, B, C, D, E, F, G), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal, _ h: Signal) -> Signal<(A, B, C, D, E, F, G, H), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal, _ h: Signal, _ i: Signal) -> Signal<(A, B, C, D, E, F, G, H, I), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal, _ h: Signal, _ i: Signal, _ j: Signal) -> Signal<(A, B, C, D, E, F, G, H, I, J), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.combineLatest") public func combineLatest(_ signals: S) -> Signal<[Value], Error> where S.Iterator.Element == Signal { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal) -> Signal<(A, B), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal) -> Signal<(A, B, C), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal) -> Signal<(A, B, C, D), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal) -> Signal<(A, B, C, D, E), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal) -> Signal<(A, B, C, D, E, F), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal) -> Signal<(A, B, C, D, E, F, G), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal, _ h: Signal) -> Signal<(A, B, C, D, E, F, G, H), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal, _ h: Signal, _ i: Signal) -> Signal<(A, B, C, D, E, F, G, H, I), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ a: Signal, _ b: Signal, _ c: Signal, _ d: Signal, _ e: Signal, _ f: Signal, _ g: Signal, _ h: Signal, _ i: Signal, _ j: Signal) -> Signal<(A, B, C, D, E, F, G, H, I, J), Error> { fatalError() } @available(*, unavailable, renamed:"Signal.zip") public func zip(_ signals: S) -> Signal<[Value], Error> where S.Iterator.Element == Signal { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer) -> SignalProducer<(A, B), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer) -> SignalProducer<(A, B, C), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer) -> SignalProducer<(A, B, C, D), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer) -> SignalProducer<(A, B, C, D, E), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer) -> SignalProducer<(A, B, C, D, E, F), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer, _ h: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G, H), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer, _ h: SignalProducer, _ i: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G, H, I), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer, _ h: SignalProducer, _ i: SignalProducer, _ j: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G, H, I, J), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.combineLatest") public func combineLatest(_ producers: S) -> SignalProducer<[Value], Error> where S.Iterator.Element == SignalProducer { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer) -> SignalProducer<(A, B), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer) -> SignalProducer<(A, B, C), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer) -> SignalProducer<(A, B, C, D), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer) -> SignalProducer<(A, B, C, D, E), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer) -> SignalProducer<(A, B, C, D, E, F), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G), Error> { fatalError()} @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer, _ h: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G, H), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer, _ h: SignalProducer, _ i: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G, H, I), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ a: SignalProducer, _ b: SignalProducer, _ c: SignalProducer, _ d: SignalProducer, _ e: SignalProducer, _ f: SignalProducer, _ g: SignalProducer, _ h: SignalProducer, _ i: SignalProducer, _ j: SignalProducer) -> SignalProducer<(A, B, C, D, E, F, G, H, I, J), Error> { fatalError() } @available(*, unavailable, renamed:"SignalProducer.zip") public func zip(_ producers: S) -> SignalProducer<[Value], Error> where S.Iterator.Element == SignalProducer { fatalError() }