docs: function makeApiCallReducer(key, [requestType, successType, failureType]) {
    const defaultState = {
      fetchingStatusByRequestId: {},
      fetchingFailureMessagesByRequestId: {},
      activeRequestId: null
    };
  
    const apiCallReducer = createReducer(defaultState, {
      [requestType](
        state,
        {
          meta: {
            _internalRequestId
            // _shouldTrackRequestsIndividually = false
          } = {}
        }
      ) {
        return {
          fetchingStatusByRequestId: {
            ...state.fetchingStatusByRequestId,
            [_internalRequestId]: fetchingStatus.fetching
          },
          fetchingFailureMessagesByRequestId: {
            ...state.fetchingFailureMessagesByRequestId,
            [_internalRequestId]: ''
          },
          activeRequestId: _internalRequestId
        };
      },
  
      [successType](
        state,
        {
          meta: {
            _internalRequestId,
            _shouldTrackRequestsIndividually = false
          } = {}
        }
      ) {
        if (
          !_shouldTrackRequestsIndividually &&
          _internalRequestId !== state.activeRequestId
        ) {
          // ignore calls that have been superseded if not tracking individually
          return state;
        }
  
        return {
          fetchingStatusByRequestId: {
            ...state.fetchingStatusByRequestId,
            [_internalRequestId]: fetchingStatus.success
          },
          fetchingFailureMessagesByRequestId: {
            ...state.fetchingFailureMessagesByRequestId,
            [_internalRequestId]: ''
          },
          // don't clear active request -- we need it to find the "last" request
          activeRequestId: state.activeRequestId
        };
      },
  
      [failureType](
        state,
        {
          payload,
          meta: {
            _internalRequestId,
            _shouldTrackRequestsIndividually = false
          } = {}
        }
      ) {
        if (
          !_shouldTrackRequestsIndividually &&
          _internalRequestId !== state.activeRequestId
        ) {
          // ignore calls that have been superseded if not tracking individually
          return state;
        }
  
        return {
          fetchingStatusByRequestId: {
            ...state.fetchingStatusByRequestId,
            [_internalRequestId]: fetchingStatus.failure
          },
          fetchingFailureMessagesByRequestId: {
            ...state.fetchingFailureMessagesByRequestId,
            [_internalRequestId]: payload
          },
          // don't clear active request -- we need it to find the "last" request
          activeRequestId: state.activeRequestId
        };
      }
    });
  
    return (state = {}, action) => {
      let baseState = state.apiCallHandlers
        ? state
        : { apiCallHandlers: { [key]: defaultState } };
  
      return {
        ...state,
        apiCallHandlers: {
          ...baseState.apiCallHandlers,
          [key]: apiCallReducer(baseState.apiCallHandlers[key], action)
        }
      };
    };
  }