  Instances conforming to `Subscriber` receive objects of an `associatedtype` associated to generic updates.
  Plus, they should be able to select some portion of this associated object, producing a second associated 
  object of another `associatedtype`.
- **/
+ */
 public protocol Subscriber: class {
     associatedtype Publishing
     associatedtype Selection

     Initializes a `Store`.
     - parameter initialState The initial value of the application state in hold.
     - parameter reducer The root pure function that's responsible for transforming state according to `Actions`.
    **/
    public init (initialState: State, reducer: (State, Action) -> State) {
        reduce = reducer
        state = initialState

     Registers a handler that's called when state changes
     - parameter subscription A closure that's called whenever there's a change to the state in hold.
     - returns A closure that unsubscribes the provided subscription.
     */
    public func subscribe(subscription: State -> Void) -> Void -> Void {
        let token = NSUUID().UUIDString
        subscribers[token] = subscription
