This library can be used to create string class hierarchies. That, in turn, can help to use typed strings more.<p>For example, e-mails and urls are a special syntax. Their value space is a subset of all non-empty string which is a subset of all strings.<p>An e-mail address could be passed into a function that requires a non-empty string as input. When the type-system knows that an e-mail string is a subclass of non-empty string, it knows that an email address is valid.<p>This library can be used to check the definitions and hierarchy of such string types. The implementation of the hierarchy differs per programming language (subclassing, trait boundaries, etc).