scala_macro