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

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 }


  }

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

