When a type constraint violation is detected, a named user constraint violation is reported with an anonymous ID.
This is confusing. There should be a special constraint type for relations, similar to attribute constraint violations.
The violation can be caused by:
relation R( ofType A )
instance b memberOf B
relationInstance bad R(b) // ** b is not a memberOf A