         self.queue = queue
     }
 
-    public func execute(_ task: (Void) -> Void) {
+    public func execute(_ task: @escaping (Void) -> Void) {
         queue.async(task)
     }
 

        return future
    }

    public func mapError(context: ExecutionContext = QueueContext.futuresDefault, cancelToken: CancelToken = CancelToken(), mapping: (Swift.Error) -> Swift.Error) -> Future<T> {
        let future = Future<T>()
        onComplete(context: context, cancelToken: cancelToken) { result in
            future.complete(result.mapError(mapping))

        }
    }
    
    public func forEach(_ apply: (T) throws -> Void) {
        switch self {
        case .success(let value):
            do {
