         }
         return mappedFuture
     }
-    
+
     public func flatMap<D>(f: (T) -> Future<D>) -> Future<D> {
         let mappedFuture = Future<D>(operationQueue: self.operationQueue, callbackQueue: self.callbackQueue)
         self.mappedCompletionF = {futureValue in

        */
        fatalError("value and error are mutally exclusive, you have reached an impossible matching condition")
    }
        
    public var value: Try<T>? {
        return self.futureValue
    }
    
    public var finalVal: T {
        return self.value!.value!
    }
    
}

public func combineFutures(signals: Signal...) -> Future<Void> {

            }
        }
        self.operationQueue.addOperation(operation)

    }

    private func futureExecutionComplete() {
        if self.bindCheck.shouldExecute {
            let operationCallback = NSBlockOperation {
