The type base-char is defined as the upgraded array element type of standard-char. An implementation can support additional subtypes of character (besides the ones listed in this standard) that might or might not be supertypes of base-char. In addition, an implementation can define base-char to be the same type as character.
base characters are distinguished in the following respects:
Whether a character is a base character depends on the way that an implementation represents strings, and not any other properties of the implementation or the host operating system. For example, one implementation might encode all strings as characters having 16-bit encodings, and another might have two kinds of strings: those with characters having 8-bit encodings and those with characters having 16-bit encodings. In the first implementation, the type base-char is equivalent to the type character: there is only one kind of string. In the second implementation, the base characters might be those characters that could be stored in a string of characters having 8-bit encodings. In such an implementation, the type base-char is a proper subtype of the type character.