import Foundation extension Signal { public static func single(value: T) -> Signal { return Signal { subscriber in subscriber.putNext(value) subscriber.putCompletion() return EmptyDisposable } } public static func fail(error: E) -> Signal { return Signal { subscriber in subscriber.putError(error) return EmptyDisposable } } public static func complete() -> Signal { return Signal { subscriber in subscriber.putCompletion() return EmptyDisposable } } }