import Foundation public func single<T, E>(_ value: T, _ errorType: E.Type) -> Signal<T, E> { return Signal<T, E> { subscriber in subscriber.putNext(value) subscriber.putCompletion() return EmptyDisposable } } public func fail<T, E>(_ valueType: T.Type, _ error: E) -> Signal<T, E> { return Signal<T, E> { subscriber in subscriber.putError(error) return EmptyDisposable } } public func complete<T, E>(_ valueType: T.Type, _ error: E.Type) -> Signal<T, E> { return Signal<T, E> { subscriber in subscriber.putCompletion() return EmptyDisposable } } public func never<T, E>(_ valueType: T.Type, _ error: E.Type) -> Signal<T, E> { return Signal { _ in return EmptyDisposable } }