 		) {
 			var hasDeliveredTerminalEvent = false
 
-			self.action = transform { event in
+			self._action = transform { event in
 				if !hasDeliveredTerminalEvent {
-					observer.action(event)
+					observer._action(event)
 
 					if event.isTerminating {
 						hasDeliveredTerminalEvent = true

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

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

				// 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 an event into `self`.
		public func send(_ event: Event) {
			_action(event)
		}

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