   }
 
   @discardableResult
-  public override func cancel(_ error: DeferredError) -> Bool
+  public override func cancel(_ error: Cancellation) -> Bool
   {
     guard !self.isResolved, let task = urlSessionTask else { return false }
 

private class DeferredDownloadTask<Success>: DeferredURLSessionTask<Success>
{
  @discardableResult
  public override func cancel(_ error: DeferredError) -> Bool
  {
    guard !self.isResolved, let task = urlSessionTask as? URLSessionDownloadTask else { return false }


  case invalidState
}

public class DeferredURLSessionTask<Success>: TBD<Success, Error>
{
  public private(set) weak var urlSessionTask: URLSessionTask? = nil

