checkTagRecord = (tagRecord, expectedPassStyle, check) => {
    return (
      (isObject(tagRecord) ||
        (!!check &&
          CX(check)`A non-object cannot be a tagRecord: ${tagRecord}`)) &&
      (isFrozen(tagRecord) ||
        (!!check && CX(check)`A tagRecord must be frozen: ${tagRecord}`)) &&
      (!isArray(tagRecord) ||
        (!!check && CX(check)`An array cannot be a tagRecord: ${tagRecord}`)) &&
      checkPassStyle(
        tagRecord,
        getOwnDataDescriptor(tagRecord, PASS_STYLE, false, check).value,
        expectedPassStyle,
        check,
      ) &&
      (typeof getOwnDataDescriptor(tagRecord, Symbol.toStringTag, false, check)
        .value === 'string' ||
        (!!check &&
          CX(
            check,
          )`A [Symbol.toStringTag]-named property must be a string: ${tagRecord}`)) &&
      checkProto(tagRecord, getPrototypeOf(tagRecord), check)
    );
  }
@param {import('./types.js').PassStyled<any, any>} tagRecord
@param {PassStyle} expectedPassStyle
@param {Checker} [check]
@returns {boolean}