 
     for deferred in array {
         dispatch_group_enter(group)
-        deferred.uponQueue(DeferredDefaultQueue) { _ in
+        deferred.upon(DeferredDefaultQueue) { _ in
             dispatch_group_leave(group)
         }
     }

extension Deferred {
    public func bindQueue<U>(queue: dispatch_queue_t, f: T -> Deferred<U>) -> Deferred<U> {
        let d = Deferred<U>()
        self.uponQueue(queue) {
            f($0).uponQueue(queue) {
                d.fill($0)
            }
        }

}

extension Deferred {
    public func bind<U>(f: T -> Deferred<U>) -> Deferred<U> {
        return bindQueue(defaultQueue, f: f)
    }
