         - returns: Deferred
 
     */
-    public func toDeferred() -> Deferred<Result<Value.Value, Value.Error>> {
-        let p = PurePromise<Result<Value.Value, Value.Error>>()
+    public func toDeferred() -> Deferred<Result<Success, Error>> {
+        let p = PurePromise<Result<Success, Error>>()
         onComplete(Pure) { result in
             p.complete(Result(result: result))
         }

        - returns: a new Future

    */
    public func andThen(ec: ExecutionContextType = SideEffects, f: Value.Value -> Void) -> Future<Value.Value, Value.Error> {
        let p = Promise<Value.Value, Value.Error>()
        
        onComplete(ec) { result in


        - returns: Future with resuls of two futures
    */
    public func zip<F: FutureType where F.Value.Error == Error>(x: F) -> Future<(Success, F.Value.Value), Error> {
        
        let ec = Pure
        
