 		/// - parameters:
 		///   - action: A closure to lift over received event.
 		public init(_ action: @escaping Action) {
-			self.action = action
+			self._action = action
 			self.wrapped = nil
 			self.interruptsOnDeinit = false
 		}

				// Since `Signal` would ensure that only one terminal event would ever be
				// sent for any given `Signal`, we do not need to assert any condition
				// here.
				action(.interrupted)
			}
		}

		/// Puts a `value` 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
		}
