Ok looking into it, zero is inside of the set of cardinal numbers. It is still wrong to call a uint a cardinal number. It's just wrong for a different reason.
Looking through various definitions, a cardinal number is a number which represents a count of sets. So a uint could be used to represent a cardinal number, but it could just as easily be a number that represents something other than a count. If it is being used to index into a list it would be an ordinal number. (And so definitely not a cardinal number.) Calling them cardinal numbers would imply something about them that may or may not be true. If it is being used to store a bitmask, then it would be wrong to call it a cardinal, ordinal, or even a natural number. It may also be wrong to call it an integer, but at least that is what CPU designers call it. On Mon, Jan 13, 2020 at 1:51 PM ToddAndMargo via perl6-users < perl6-us...@perl.org> wrote: > On 2020-01-13 11:10, ToddAndMargo via perl6-users wrote: > > > > https://docs.raku.org/type/UInt > > Subset UInt > > Unsigned integer (arbitrary-precision) > > The UInt is defined as a subset of Int: > > my subset UInt of Int where {not .defined or $_ >= 0}; > > Consequently, it cannot be instantiated or subclassed; > > however, that shouldn't affect most normal uses > > Trivia: > > In https://docs.raku.org/type/UInt, a cardinal (uint) > is a subset > > In https://docs.raku.org/language/nativetypes, a > cardinal (unit) gets their own "native type". > > Life in the documentation lane! > > :-) >