 
 /// A push-driven stream that sends the same values to all observers.
 class Observable<T> {
+	/// Something capable of observing the value changes of an Observable.
 	typealias Observer = T -> ()
 
 	@final let _queue = dispatch_queue_create("com.github.ReactiveCocoa.Observable", DISPATCH_QUEUE_CONCURRENT)

		}
	}

	@final func sampleOn<U>(sampler: Observable<U>) -> Observable<T> {
		return Observable { send in
			return sampler.observe { _ in send(self.current) }
		}
	}

	@final func delay(interval: NSTimeInterval, onScheduler scheduler: Scheduler) -> Observable<T?> {
		return Observable<T?>(initialValue: nil) { send in
			return self.observe { value in

		}
	}

	/// Switches on an Observable of Observables, forwarding values from the
	/// latest inner stream.
	///
	/// evidence - Used to prove to the typechecker that the receiver is
	///            a stream-of-streams. Simply pass in the `identity` function.
	///
	/// Returns an Observable that will forward changes only from the latest
	/// Observable sent upon the receiver.
	@final func switchToLatest<U>(evidence: Observable<T> -> Observable<Observable<U>>) -> Observable<U> {
		return Observable<U> { send in
			let compositeDisposable = CompositeDisposable()
