Deprecate early type defs

This is rehash of #2856 

Review by @adriaanm