Macros-based DI exploration in Scala