import scala.language.experimental.macros
object Macros {
  import scala.language.implicitConversions
  implicit def foo(x: String): Option[Int] = macro Impls.foo
}

object Test extends App {
  import Macros._
  println("2": Option[Int])
  val s: Int = "2" getOrElse 0
  println(s)
}
