See
this p5p thread from 18 months ago for a description of some limitations of restricted-hash-based fields and some strong anti-compile-time-checking sentiment on the part of some (including rejection of a patch to put the checking back in bleadperl).
types.pm, is unfortunately IMO uncommented to the point of unmaintainability.