function isNat(allegedNum) {
  if (typeof allegedNum === 'bigint') {
    return allegedNum >= 0;
  }
  if (typeof allegedNum !== 'number') {
    return false;
  }

  return Number.isSafeInteger(allegedNum) && allegedNum >= 0;
}
Is `allegedNum` a number in the [contiguous range of exactly and
unambiguously
representable](https://esdiscuss.org/topic/more-numeric-constants-please-especially-epsilon#content-14)
 natural numbers (non-negative integers)?

To qualify `allegedNum` must either be a
non-negative `bigint`, or a non-negative `number` representing an integer
within range of [integers safely representable in
floating point](https://tc39.es/ecma262/#sec-number.issafeinteger).

@param {unknown} allegedNum
@returns {boolean}