 	/// (typically from a Signal).
 	public final class Observer {
 		public typealias Action = (Event) -> Void
+		private let _action: Action
 
 		/// An action that will be performed upon arrival of the event.
-		public let action: Action
+		@available(*, deprecated: 2.0, renamed:"send(_:)")
+		public var action: Action {
+			guard !interruptsOnDeinit && wrapped == nil else {
+				return { self._action($0) }
+			}
+			return _action
+		}
 
 		/// Whether the observer should send an `interrupted` event as it deinitializes.
 		private let interruptsOnDeinit: Bool

		/// - parameters:
		///   - value: A value sent with the `value` event.
		public func send(value: Value) {
			action(.value(value))
		}

		/// Puts a failed event into `self`.

		///   - interruptsOnDeinit: `true` if the observer should send an `interrupted`
		///                         event as it deinitializes. `false` otherwise.
		internal init(action: @escaping Action, interruptsOnDeinit: Bool) {
			self._action = action
			self.wrapped = nil
			self.interruptsOnDeinit = interruptsOnDeinit
		}
