   /// - parameter result: the intended `Result` to determine this `Deferred`
   /// - throws: `DeferredError.AlreadyDetermined` if the `Deferred` was already determined upon calling this method.
 
-  private func setResult(result: Result<T>) throws
+  private func determine(result: Result<T>) throws
   {
     // A turnstile to ensure only one thread can succeed
     while true

      if self.isDetermined { return }
      self.beginExecution()
      let transformed = result.flatMap(transform)
      do { try self.setResult(transformed) }
      catch { /* an error here means `self` was canceled before `transform()` completed */ }
    }
  }

      case .Value(let value):
        transform(value).notify(queue, qos: qos) {
          transformed in
          do { try self.determine(transformed) }
          catch { /* an error here means `self` was canceled before `transform()` completed */ }
        }

      case .Error(let error):
        do { try self.determine(Result(error: error)) }
        catch { /* an error here seems irrelevant */ }
      }
    }
