         self.operation = operation
     }
     
-    
     fileprivate func then(_ completion: @escaping (ResultType) -> ()) {
         self.operation() { completion($0) }
     }
-    
     
     public func subscribe(onNext: @escaping (T) -> Void = { _ in }, onError: @escaping (Error) -> Void = { _ in }) {
         self.then { result in

            }
        }
    }
}




extension Future {
    public func map<U>(_ f: @escaping (T) throws -> U) -> Future<U> {
        return Future<U> { completion in
            self.then { result in

            }
        }
    }
    
}

