             transform.notify(queue: queue) { applyTransform(value, $0, resolver) }
             resolver.retainSource(transform)
           }
-        }
-        catch {
+
+        case .failure(let error):
           resolver.resolve(error: error)
         }
       }

      self.notify(queue: queue) {
        result in
        guard resolver.needsResolution else { return }
        do {
          let value = try result.get()
          if let transform = transform.peek()
          {
            applyTransform(value, transform, resolver)

  /// - parameter value: the value to be transformed for a new `Deferred`

  public func apply<Other>(qos: DispatchQoS,
                           transform: Deferred<(_ value: Success) -> Other, Never>) -> Deferred<Other, Failure>
  {
    let queue = DispatchQueue(label: "deferred-apply", qos: qos)
    return apply(queue: queue, transform: transform)
  }
}

