 	/// Initializes an action that will be conditionally enabled, and creates a
 	/// SignalProducer for each input.
 	///
+	/// - warning: This is an internal implementation detail of `Action.init(input:_:)`
+	///            and will be removed in a future version of ReactiveSwift.
+	///            Use `Action.init(enabledIf:_:)` instead.
+	///
 	/// - parameters:
 	///   - enabledIf: Boolean property that shows whether the action is
 	///                enabled.
 	///   - execute: A closure that returns the signal producer returned by
 	///              calling `apply(Input)` on the action.
-	init<P: PropertyProtocol>(enabledIf property: P, _ execute: @escaping (Input) -> SignalProducer<Output, Error>) where P.Value == Bool
+	init<P: PropertyProtocol>(_internalEnabledIf property: P, tryExecute: @escaping (Input) -> SignalProducer<Output, ActionError<Error>>) where P.Value == Bool
 
 	/// Whether the action is currently enabled.
 	var isEnabled: Property<Bool> { get }


		isEnabled = state.map { $0.isEnabled }
		isExecuting = state.map { $0.isExecuting }
	}

	/// Initializes an action that will be enabled by default, and creates a

public final class Action<Input, Output, Error: Swift.Error> {
	private let deinitToken: Lifetime.Token

	private let executeClosure: (Input) -> SignalProducer<Output, ActionError<Error>>
	private let eventsObserver: Signal<Event<Output, Error>, NoError>.Observer
	private let disabledErrorsObserver: Signal<(), NoError>.Observer

