 
         return newQueries.flatMap { controls in
             return Driver.merge(controls.map { control -> Driver<Event> in
-                i += 1
                 return query.filter { !$0.contains(control) }
                     .map { _ in Driver<Event>.empty() }
                     .startWith(effects(control).enqueue())

 - parameter effects: Control state which is subset of state.
 - returns: Feedback loop performing the effects.
 */
var i = 0;
public func react<State, Control: Equatable, Event>(
    query: @escaping (State) -> Control?,
    effects: @escaping (Control) -> Driver<Event>

                    return Driver<Event>.empty()
                }

                return effects(results)
                    .enqueue()
        }
