     /// Basic state-transition function type.
     public typealias Mapping = (State, Input) -> State?
 
-    /// Transducer (input & output) mapping with `SignalProducer<Input, NoError>` as output,
-    /// which can wrap heavy tasks and then emit new "input" values
+    /// Transducer (input & output) mapping with `SignalProducer<Input, NoError>` as "next producer" output,
+    /// which can wrap heavy tasks and emit **next input values**
     /// for automatic & continuous state-transitions.
     public typealias NextMapping = (State, Input) -> (State, SignalProducer<Input, NoError>)?
 

        let stateProperty = MutableProperty(initialState)
        self.state = AnyProperty(stateProperty)

        let (signal, observer) = Signal<Reply<State, Input>, NoError>.pipe()
        self.replies = signal
        self._replyObserver = observer

        /// Recursive input-producer that sends inputs from `inputSignal`
        /// and also next producers generated by `NextMapping`.

    return { x in g(f(x)) }
}

private func _toNextMapping<State: StateType, Input: InputType>(toState: State?) -> (State, SignalProducer<Input, NoError>)?
{
    if let toState = toState {
        return (toState, .empty)
