much better error messages for circular type alias definitions