 
     /// A source that delivers the new value whenever this observable changes.
     var futureValues: Source<Change.Value> { get } // Implemented in an extension in terms of futureChanges.
-
-    /// A source that, for each new sink, immediately sends the current value, and thereafter delivers updated values.
-    var values: Source<Change.Value> { get } // Implemented in an extension in terms of futureValues and value.
 }
 
 extension ObservableType where Change == SimpleChange<ObservableValue> {

}

extension ObservableType {
    /// A source that immediately sends the current value to each new sink, and thereafter delivers new values
    /// whenever this readable changes.
    public var values: Source<Change.Value> {
        return Source<Change.Value> { sink in
            // We assume connections not concurrent with updates.


/// The type lifted representation of an ObservableType that contains a value with complex changes.
public struct AnyObservable<Change: ChangeType>: ObservableType {
    public typealias Value = Change.Value

    private let _getter: Void -> Change.Value
    private let _futureChanges: Void -> Source<Change>
    private let _futureValues: Void -> Source<Value>

    public init<Observable: ObservableType where Observable.Change == Change>(_ observable: Observable) {
        self._getter = { observable.value }
        self._futureChanges = { observable.futureChanges }
        self._futureValues = { observable.futureValues }
    }

    /// The current value of the observable.
    public var value: Value { return _getter() }

    public var futureChanges: Source<Change> { return _futureChanges() }
    public var futureValues: Source<Value> { return _futureValues() }
}
