     
     // MARK:- Type declarations
     
-    public typealias CompleteCallback = Result<T, E> -> Void
+    public typealias ResultType = Result<T, E>
+    
+    public typealias CompleteCallback = ResultType -> Void
     public typealias SuccessCallback = T -> Void
     public typealias ErrorCallback = E -> Void
     
     // MARK:- Private properties
     
-    private let deferred = Deferred<Result<T, E>>()
+    private let deferred = Deferred<ResultType>()
     
     // MARK:- Public properties
     
-    public internal(set) var value: Result<T, E>? {
+    public internal(set) var value: ResultType? {
         set {
             deferred.value = newValue
         }

    
    // MARK:- FutureType methods
    
    public init(_ x: Result<T, E>) {
        self.deferred = Deferred(x)
    }
    

    
    // MARK:- With execution context
    
    public func forced(ec: ExecutionContextType) -> ResultType {
        return PureFutures.forced(ec, self)
    }
    
    public func forced(ec: ExecutionContextType, interval: NSTimeInterval) -> ResultType? {
        return PureFutures.forced(ec, self, interval)
    }
    
