function charArrayEq(cArr1, cArr2) {
  if(cArr1 === cArr2) return true
  if(!cArr1 || !_.isArray(cArr1)) return Object.is(cArr1, cArr2)
  if(cArr1.length !== cArr2.length) return false
  for(let i = 0; i < cArr1.length; i++) {
    if(!charEq(cArr1[i], cArr2[i])) return false
  }
  return true
}
Determines whether two char arrays are the same or not i.e. that the arrays refer to the
same chars (but note that this only checks char identity, and ignores char properties like
attributes and deleted chars). Will also return true if both arrays are undefined or both
are null.
@param {Char[]} cArr1
@param {Char[]} cArr2