zipWith<B, C>(fu: Supplier< Future<B> >, f: (a: A, b: B) => C): Future<C> {
        return this.flatMap(a => fu().map(b => f(a, b)));
    }