code: function dispatch(action, payload) {
      if (process.env.NODE_ENV !== 'production' && dispatching) {
        throw new Error(`'${action.toString()}' was dispatched while '${dispatching.toString()}' was still updating. Updaters should be pure functions and must not dispatch actions.`);
      }
      try {
        dispatching = action;
        state = updater(state, action, payload);
        if (process.env.NODE_ENV !== 'production' && debug) {
          console.info(state);
        }
      } finally {
        dispatching = null;
      }
      updateUI();
    }
docs: dummy spec for the node we're attaching to 
  @param {Symbol|string} action? The action to dispatch (or undefined to force a render)
  @param {any} payload? Any data associated with the action
  @returns {void}