docs: function fetchUsersCycle(sources) {
    const accessToken$ = accessTokenSelector$(sources.STATE);
  
    const resNeedFetch = R.pathSatisfies(R.contains(R.__, [CREATE_USER_BY_CSV]), [
      'request',
      'category',
    ]);
  
    const request$ = Observable.merge(
      sources.ACTION.filter(action => action.type === FETCH_USERS),
      sources.HTTP.select()
        .concatMap(success)
        .filter(resNeedFetch),
    ).combineLatest(accessToken$, (s, accessToken) => ({
      url: '/api/users',
      method: 'GET',
      headers: { Authorization: `Bearer ${accessToken}` },
      category: FETCH_USERS,
    }));
  
    const successRes$ = sources.HTTP.select(FETCH_USERS).switchMap(success);
  
    const action$ = Observable.from([
      request$.mapTo(uiActions.setLoading()),
      successRes$.pluck('body').map(setUsers),
      successRes$.mapTo(uiActions.setLoaded()),
    ]).mergeAll();
  
    return {
      ACTION: action$,
      HTTP: request$,
    };
  }