     
     /**
      Perform state changes described by the action and the root reducer.
-     - parameter action The descriptor of **what** is the state change.
+     
+     - parameter action: The descriptor of **what** is the state change.
      */
     public func dispatch(action: Action) {
         state = reduce(state, action)

    
    /**
     Selects some portion of an object of an arbitrary (associated) type.
     - parameter publishing The object that will suffer the selection.
     - returns An object selected from `publishing`.
    */
    func select(publishing: Publishing) -> Selection
    
    /**
     Receives an object associated to a generic update, preferably after undergoing selection by `select`.
     - parameter selection The object associated to a generic update, after going through selection.
     */
    func receive(selection: Selection)
}

public protocol StateConnectable: class {
    /**
     Receives a connection.
     
     - parameter connection: The connection to receive.
    */
    func connect(with connection: StateConnection)
}
