      
      - parameter error: The error to use for the resolution.
      */
-    func setError(_ error: Error) {
+    public func setError(_ error: Error) {
         cv.lock()
         assert(state == .unresolved, "Cannot set error. Future already resolved")
         

    /**
     Resolves the receiver by cancelling it.
     */
    func cancel() {
        cv.lock()
        assert(state == .unresolved, "Cannot cancel. Future already resolved")
        

        return !timeoutExpired
    }
    
    // MARK: State setting
    
    /**
     Resolves the receiver by setting a result.
     
     - parameter result: The result to use for the resolution.
     */
    public func setResult(_ result: ResultType) {
        cv.lock()
        assert(state == .unresolved, "Cannot set result. Future already resolved")
        
