 	/// already.
 	@warn_unused_result(message="Did you forget to call `start` on the producer?")
 	public func takeUntilReplacement(replacement: SignalProducer<T, E>) -> SignalProducer<T, E> {
-		return lift { (sg) -> Signal<T, E> -> Signal<T, E> in { $0.takeUntilReplacement(sg) } }(replacement)
+		return lift { signal -> Signal<T, E> -> Signal<T, E> in { $0.takeUntilReplacement(signal) } }(replacement)
 	}
 
 	/// Waits until `self` completes and then forwards the final `count` values

	/// are the Nth elements of the two input producers.
	@warn_unused_result(message="Did you forget to call `start` on the producer?")
	public func zipWith<U>(otherProducer: SignalProducer<U, E>) -> SignalProducer<(T, U), E> {
		return lift { sg -> Signal<T, E> -> Signal<(T, U), E> in { $0.zipWith(sg) } }(otherProducer)
	}

	/// Applies `operation` to values from `self` with `Success`ful results

	/// completed, or interrupt if either input producer is interrupted.
	@warn_unused_result(message="Did you forget to call `start` on the producer?")
	public func sampleOn(sampler: SignalProducer<(), NoError>) -> SignalProducer<T, E> {
		return lift { signal -> Signal<T, E> -> Signal<T, E> in { $0.sampleOn(signal) } }(sampler)
	}

	/// Forwards events from `self` until `trigger` sends a Next or Completed
	/// event, at which point the returned producer will complete.
	@warn_unused_result(message="Did you forget to call `start` on the producer?")
	public func takeUntil(trigger: SignalProducer<(), NoError>) -> SignalProducer<T, E> {
		return lift { signal -> Signal<T, E> -> Signal<T, E> in { $0.takeUntil(signal) } }(trigger)
	}

	/// Forwards events from `self` with history: values of the returned producer
