Trait object bounds, and definition of macros