             fulfillBasic(.rejected(error))
         }
     }
-}
-
-
-public extension Promise {
     
     public typealias PendingTuple = (promise: Promise, fulfill: (FulfilledValue) -> Void, reject: (Error) -> Void)
     

        }
        return newPromise
    }
    
    
    public func tap(
        on q: DispatchQueue  = BasicPromise<Void>.defaultQueue,
        execute body: @escaping (Result<FulfilledValue>) -> Void

        let promise = Promise { fulfill = $0; reject = $1 }
        return (promise, fulfill, reject)
    }

    public init(value: FulfilledValue) {
        self.init {
            fulfill, reject in
