 }
 
 extension SignalType {
-	/// Merges the given signals into a single `Signal` that will emit all values
-	/// from each of them, and complete when all of them have completed.
+	/// Merges the given signals into a single `Signal` that will emit all
+	/// values from each of them, and complete when all of them have completed.
 	@warn_unused_result(message="Did you forget to call `observe` on the signal?")
 	public static func merge<Seq: SequenceType, S: SignalType where S.Value == Value, S.Error == Error, Seq.Generator.Element == S>(signals: Seq) -> Signal<Value, Error> {
 		let producer = SignalProducer<S, Error>(values: signals)

	/// Flattens the inner signals sent upon `signal` (into a single signal of
	/// values), according to the semantics of the given strategy.
	///
	/// - note: If `signal` or an active inner signal emits an error, the 
	///         returned signal will forward that error immediately.
	///
	/// - warning: `Interrupted` events on inner signals will be treated like 
	///            `Completed` events on inner signals.
	@warn_unused_result(message="Did you forget to call `observe` on the signal?")
	public func flatten(strategy: FlattenStrategy) -> Signal<Value.Value, Error> {

}

extension SignalType where Value: SignalProducerType, Error == Value.Error {
	/// Merges a `signal` of SignalProducers down into a single signal, biased
	/// toward the producer added earlier. Returns a Signal that will forward
	/// events from the inner producers as they arrive.
	private func merge() -> Signal<Value.Value, Error> {
		return Signal<Value.Value, Error> { relayObserver in
			let disposable = CompositeDisposable()
