Type in expressions to have them evaluated. Type :help for more information. scala> import scala.reflect.macros.BlackboxContext import scala.reflect.macros.BlackboxContext scala> import language.experimental.macros import language.experimental.macros scala> scala> def impl1(c: BlackboxContext) = { import c.universe._; c.Expr[Unit](q"()") } impl1: (c: scala.reflect.macros.BlackboxContext)c.Expr[Unit] scala> def foo1 = macro impl1 defined term macro foo1: Unit scala> foo1 scala> scala> def impl2(c: BlackboxContext)() = { import c.universe._; c.Expr[Unit](q"()") } impl2: (c: scala.reflect.macros.BlackboxContext)()c.Expr[Unit] scala> def foo2() = macro impl2 defined term macro foo2: ()Unit scala> foo2() scala> scala> def impl3(c: BlackboxContext)(x: c.Expr[Int])(y: c.Expr[Int]) = { import c.universe._; c.Expr[Unit](q"()") } impl3: (c: scala.reflect.macros.BlackboxContext)(x: c.Expr[Int])(y: c.Expr[Int])c.Expr[Unit] scala> def foo3(x: Int)(y: Int) = macro impl3 defined term macro foo3: (x: Int)(y: Int)Unit scala> foo3(2)(3) scala>