A domain name is a sequence of labels separated by dots, such as foo.example. Each label may contain any bytes. The length of each label may not exceed 63 charactes. The total length of a domain name is limited to 253 (byte representation is 255), but other protocols (such as SMTP) may apply even smaller limits. A domain name label is case preserving, comparison is done in a case insensitive manner.
The invariants on the length of domain names are preserved throughout the module.