 // MARK: - Futurable -
 public protocol Futurable {
     typealias T
+    init()
+    init(_ result: T)
+    init(_ dependent: Self)
     func onComplete(context context: ExecutionContext, cancelToken: CancelToken, complete: Try<T> -> Void) -> Void
 }
 
 // MARK: - Future -
 
-public final class Future<T> : Futurable {
+public final class Future<T>: Futurable {
 
     typealias OnComplete = Try<T> -> Void
     private var savedCompletions = [CompletionId : OnComplete]()


}

// MARK: - Try -

public enum Try<T> {

    case Success(T)
    case Failure(ErrorType)
    
    public init(_ value: T) {
        self = .Success(value)
    }

        return result != nil
    }

    public required init() {}

    public required init(_ result: T) {
        self.result = Try(result)
    }

    public required init(_ dependent: Future<T>) {
        completeWith(future: dependent)
    }

    // MARK: Complete

