isNonNegativeInteger (arg: any, name = 'argument'): arg is number {
    if (!Number.isInteger(arg) || arg as any < 0) {
      throw new Error(`${name} should be a non-negative integer`)
    }
    return true