   /// - parameter result: the intended `Result` for this `Deferred`
   /// - throws: `DeferredError.AlreadyDetermined` if the `Deferred` was already determined upon calling this method.
 
-  public func determine(result: Result<T>) throws
-  {
-    try super.setResult(result)
+  public override func determine(result: Result<T>) throws
+  {
+    try super.determine(result)
   }
 
   /// Change the state of this `TBD` from `.Waiting` to `.Executing`

  /// - 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
  {
    // A turnstile to ensure only one thread can succeed
    while true


    let block = createBlock(qos) {
      let result = Result<T> { try task() }
      do {  try self.determine(result) }
      catch { /* an error here means this `Deferred` was canceled before `task()` was complete. */ }
    }

