curry((names, params) => Object.keys(params).reduce((acc, key) => ( names.includes(key) ? set(key, JSON.stringify(params[key]), acc) : acc ), params))
curry((param, headers) => { if (headers instanceof Headers) { return headers.get(param); } else if (headers[param] !== null) { return headers[param]; } return undefined; })
curry((queryParams, url) => (isEmpty(queryParams) ? url : `${url}?${qs.stringify(queryParams)}`), )
curry((baseUrl, { path, endpoint, query, ...rest }) => set('endpoint', withQs(query, endpoint || `${baseUrl}/${path}`), rest))
curry((accumulated, names, params) => Object.keys(params).reduce((acc, key) => ( names.includes(key) ? set([accumulated, key], params[key], unset(key, acc)) : acc ) , params), )