 
 extension Publisher {
     /**
-     Adds the handler defined by a `Subscriber` that is compatible with the
-     events defined by this `Publisher`.
+     Adds the handler defined by a `Subscriber` that is compatible with the events defined by this `Publisher`.
      - parameter subscriber The compatible `Subscriber`.
      - returns A closure that unsubscribes the provided `Subscriber`.
      **/


extension Dispatch {
    /**
     Executes a closure with an injected `dispatch` function. Useful for
     asynchronous `Action` dispatching.
     - parameter thunk The closure that will be executed with an injected `dispatch` function.
     **/
    public func dispatch(thunk: (Action -> Void) -> Void) {

import Foundation

/**
 The data structure responsible for holding application state, allowing controlled mutation through dispatched 
 `Actions` and notifying interested parties that `subscribe` to state changes.
 **/
public final class Store<State>: Publisher, Dispatch {
    private let reduce: (State, Action) -> State
