         self.box = other.box
     }
 
-    public func upon(_ queue: DispatchQueue, execute body: @escaping(Value) -> Void) {
+    public func upon(_ queue: PreferredExecutor, execute body: @escaping(Value) -> Void) {
         return box.upon(queue, execute: body)
     }
 

*/

// Abstract class that fake-conforms to `FutureProtocol` for use by `Future`.
private class FutureBox<Value> {
    func upon(_: Executor, execute _: @escaping(Value) -> Void) {
        fatalError()
    }

    func upon(_: DispatchQueue, execute _: @escaping(Value) -> Void) {
        fatalError()
    }


}

// Concrete future wrapper for an always-filled future.
private final class Always<Value>: Box<Value> {
    let value: Value
    init(value: Value) {
        self.value = value
    }

    override func upon(_ queue: Future<Value>.PreferredExecutor, execute body: @escaping(Value) -> Void) {
        queue.async { [value] in
            body(value)
        }
