Boolean subtype confusion

Perhaps you meant the compiler.

Did you expect a different interpretation? What do you want to use it for?

If you just want to use ::Bool values in computation, they behave like the number 0 and 1 for practical purposes, except that they have a specific type, which is required in some contexts (eg if), and cannot accept any other value (I am ignoring some corner cases here).

The actual representation is not that important, except if you are interfacing with C or in some corner cases.

(Also, please quote your code.)