Add trait object bounds, and the definitions of macros
Link to demo