It has occurred to me that it might be nice to have a datatype which represents a string of bits, where you don't have to have exactly multiples of 8 of them...and where positions were on a bit-level.

If there were such a type, it might be called BITS! to not conflict...but either way it does point out that BINARY! is kind of a misleading name.

Since today's BINARY! is a series managed in multiples of 8 bits, wouldn't it be better to call it BYTES! ?

I'll add that I'm kind of leaning toward saying that the representation be ${FFFF} or $"FFFF" as opposed to using & to replace #. This is more of a nod to historical $ sign for hex... leaves & free for other applications...and gives the ability to put characters in quoted strings cleanly, like:

rebElide("some-char: #{c}");

Although that particular case can be done without delimiters as #c ... but we need to work through what is and isn't legal to do without quotes or braces.

In COBOL the BINARY got replaced by COMPUTATIONAL or COMP.

It is indeed a little remarkable that there is not an arbitrary length bits field. Just enough bits for all flags used. But then again the whole memory is divided in words of some bytes length.

I think I do remember the $ hex notation being used....