The default implementation for the SubType service.
It assumes that all known types and all their sub-type relationships are explicitly encoded in the type graph.
Cycles in the sub-type relationships are supported,
so that DSL users might accidentally define e.g. classes with cyclic sub-super classes, resulting in validation errors shown to them.
This implementation does not cache any computed sub-type-relationships.
The default implementation for the SubType service. It assumes that all known types and all their sub-type relationships are explicitly encoded in the type graph. Cycles in the sub-type relationships are supported, so that DSL users might accidentally define e.g. classes with cyclic sub-super classes, resulting in validation errors shown to them. This implementation does not cache any computed sub-type-relationships.