Chapter 8. Validation and Annotation
A Candidate Instance is valid against a Builtin Type if it is in its value space.
A Candidate Instance is valid against a Derived Type if it is valid against its $baseType (recursively) and if it is valid against all facets.