code: function transQRes(qRes, fn, keepHead) {
    // check if qRes is not already a matrix (transformed)
    qRes = _.isPlainObject(qRes[0]) ? qRes[0] : qRes
    keepHead = _.isUndefined(keepHead) ? false : keepHead;
    var headExist = true;
    var head, body;
  
    if (qRes.columns) {
      head = qRes.columns
      head[0] = 'header: ' + head[0].replace('header: ', '')
      body = transData(qRes.data, fn)
    } else {
      // check if header is still there
      if (!_.startsWith(_.get(qRes, '0.0'), 'header: ')) {
        headExist = false;
      };
      head = headExist ? _.head(qRes) : []
      body = headExist ? transData(_.tail(qRes), fn) : transData(qRes, fn);
    }
    // if wishes to keep the head if it exists
    if (headExist && keepHead) {
      body.unshift(head)
    };
    return body
  }
docs: Format a qRes (query result) inside neoRes into a table. By default, dumps its header.
  @private
  @param  {JSON|Array} qRes A {columns, data} pair, or the transformed matrix of {columns, data}
  @param  {Function|Array} fn A transformer function or many of them in an array
  @param  {Boolean} [keepHead=false] To drop the header or not.
  @return {Array}      A table with head and body
  
  @example
  var qRes = {"columns":["a"],"data":[{"row":[{"slack__profile__fields ... }
  transQRes(qRes)
  // => [{ slack__profile__fields__Xf0DAVBL83__alt: '',
  ...]
  
   /* istanbul ignore next