Virtual Classes for Scala implemented as annotation macros