 ///
 /// A closure supplied to the `notify` method will be called after the `Deferred` has become determined.
 
-open // would prefer "public", but an "open" class can only descend from another "open" class.
-class Deferred<Value>
+open class Deferred<Value>
 {
   fileprivate let queue: DispatchQueue
 


  /// Change the state of this `TBD` from `.waiting` to `.executing`

  public override func beginExecution()
  {
    super.beginExecution()
  }

  /// - returns: whether the cancellation was performed successfully.

  @discardableResult
  open func cancel(_ reason: String = "") -> Bool
  {
    return determine(Result.error(DeferredError.canceled(reason)))
  }
