code: function(a, b) {
      if (a !== b) {
        const atype = whatis(a);
        const btype = whatis(b);
  
        if (atype === btype) {
          return _equal.hasOwnProperty(atype) ? _equal[atype](a, b) : a == b;
        }
  
        return false;
      }
  
      return true;
    }
docs: Are two values equal, deep compare for objects and arrays.
  @param a {any}
  @param b {any}
  @return {boolean} Are equal?