 	public func skipRepeats<U: Equatable>(evidence: HotSignal -> HotSignal<U>) -> HotSignal<U> {
 		return evidence(self).skipRepeats { $0 == $1 }
 	}
-	
+
 	/// Skips all consecutive, repeating values in the signal, forwarding only
 	/// the first occurrence.
 	///


	/// Creates a signal that can be controlled by sending values to the
	/// returned sink.
	public class func pipe() -> (HotSignal, SinkOf<T>) {
		var sink: SinkOf<T>? = nil
		let signal = HotSignal { s in
			sink = s
			return nil
		}

		return (signal, sink!)
	}

	/// Creates a repeating timer of the given interval, with a reasonable

	///           function will work in most cases.
	public func skipRepeats(isEqual: (T, T) -> Bool) -> HotSignal<T> {
		let previous = Atomic<T?>(nil)

		return filter { value in
			let previousValue = previous.value
			previous.value = value

			if let previousValue = previousValue {
				if isEqual(value, previousValue) {
					return false
				}
			}

			return true
		}
	}
