restriction of the usage of a subtype of a DataType to only allow a subset of all its subtypes