I guess it boils down to the question how many special cases we want to support. I propose we find out what we actually do, by going throught the 'allowedtype' specs and implement what is necessary. It should be fairly simple to add efficient handling of relevant special cases -- it is all handle in a single place now.