Scala macro for composition of trait instances