The simplest runtime implementation would be non-zero subtype on the string, to mark that it is binary data and not unicode text. (Although that might make the stringp operator a bit ambiguous.) The main benefits are in static typechecking, making sure you don't send unencoded text to I/O functions and suchlike.