 	return (lhs ++ rhs) => { $0 == $1 }
 }
 
+extension Promise : Printable {
+	public var description : String {
+		if let value = _value {
+			return "Promise(\(value))"
+		} else {
+			return "Promise(\(_value.dynamicType))"
+		}
+	}
+}
+
 
 public class OptionalPromise<T> {
 	public init() {

public func ==<T : Equatable>(lhs : ResultPromise<T>, rhs : ResultPromise<T>) -> ResultPromise<Bool> {
	return (lhs ++ rhs) => { $0 == $1 }
}

	}
}

extension Result : Printable {
	public var description : String {
		switch self {
		case .Ok(let box): return "Result.Ok(\(box.value))"
		case .Error(let error): return "Result.Error(\(error))"
		}
	}
}


public class Promise<T> {
	public init() {
