 
 public func futureOnBackground<T>(f: () -> Try<T>) -> Future<T> {
     return Future(f, operationQueue: defaultFutureQueue, callbackQueue: defaultFutureQueue)
-}+}

        */
        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.completionF = f
        return self
    }

    /**
    * :param f - A function that a T as its only argument
    *
