=begin pod

=TITLE subset UInt

=SUBTITLE Unsigned Integer (arbitrary-precision)

The C<UInt> is defined as a subset of C<Int>:

=for code :skip-test
my subset UInt of Int where * >= 0;

Consequently, it cannot be instantiated or subclassed; however, that shouldn't affect most normal uses.

Some examples of its behavior and uses:

=for code :skip-test
  my UInt $u = 0xffff_ffff_ffff_ffff_ffff_ffff_ffff_ffff; # 64-bit unsigned value
  say $u.base(16); # FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF (32 digits)
  ++$u;
  say $u.base(16); # 100000000000000000000000000000000 (33 digits!)
  my Int $i = $u;
  say $i.base(16); # same
  say $u.WHAT;     # (UInt)
  say $i.WHAT;     # (Int)
  $u = $i;
  say $u.WHAT;     # (Int)!! a subset of Int is an Int

=end pod
