auto-generation of `empty`