Merge trait and impl macros by using an inner module