Deprecate early type defs

This is rehash of #2856