During the closing days of the 9.1 release, we had discussed that we
should add privileges on types (and domains), so that owners can prevent
others from using their types because that would prevent the owners from
changing them in certain ways. (Collations have similar issues and work
quite similar to types, so we could include them in this consideration.)
As I'm plotting to write code for this, I wonder about how to handle
default privileges. For compatibility and convenience, we would still
want to have types with public privileges by default. Should we
continue to hardcode this, as we have done in the past with functions,
for example, or should we use the new default privileges facility to
register the public default privileges in the template database?