scala macros example