 	}
 }
 
+#if swift(>=5.7)
 /// Represents reactive primitives that can be represented by `SignalProducer`.
 public protocol SignalProducerConvertible<Value, Error> {
 	/// The type of values being sent by `self`.

	/// The materialized `self`.
	var producer: SignalProducer<Value, Error> { get }
}

extension SignalProducer: SignalProducerConvertible, SignalProducerProtocol {
	public var producer: SignalProducer {

	/// The `SignalProducer` representation of `self`.
	var producer: SignalProducer<Value, Error> { get }
}
#else
/// Represents reactive primitives that can be represented by `SignalProducer`.
public protocol SignalProducerConvertible {
	/// The type of values being sent by `self`.
	associatedtype Value

	/// The type of error that can occur on `self`.
	associatedtype Error: Swift.Error

	/// The `SignalProducer` representation of `self`.
	var producer: SignalProducer<Value, Error> { get }
}
#endif

#if swift(>=5.7)
/// A protocol for constraining associated types to `SignalProducer`.
public protocol SignalProducerProtocol<Value, Error> {
	/// The type of values being sent by `self`.
