 // MARK: Standalone functions
 
 /// Combine an array of signals into one. See `combineLatest(with:)` for more info.
-public func combineLatest<Element, Result, Error: Swift.Error>(_ signals: [Signal<Element, Error>], combine: @escaping ([Element]) -> Result) -> Signal<Result, Error> {
+public func combineLatest<Element, Result, Error>(_ signals: [Signal<Element, Error>], combine: @escaping ([Element]) -> Result) -> Signal<Result, Error> {
   return Signal { observer in
     let disposable = CompositeDisposable()
     var elements = Array<Element?>(repeating: nil, count: signals.count)

  }

  /// Transform error by applying `transform` on it.
  public func mapError<F: Swift.Error>(_ transform: @escaping (Error) -> F) -> Signal<Element, F> {
    return Signal { observer in
      return self.observe { event in
        switch event {

}

/// Merge an array of signals into one. See `merge(with:)` for more info.
public func merge<Element, Error>(_ signals: [Signal<Element, Error>]) -> Signal<Element, Error> {
  return Signal { observer in
    
    guard signals.count > 0 else {
