macros scala: Adicionar função à turma

Sou novo em macros scala e estou usando o scala 2.10.0-RC3.

Eu quero escrever uma macro que adiciona uma função a uma classe. Exemplo de uso:

trait MyTrait {
  def addF = macro { /*add "def f = 3" to class*/ }
}

class MyClass extends MyTrait {
  addF //Adds the "def f" to MyClass
}

object Main {
  val t = new MyClass
  assert(t.f==3)
}

Eu preciso disso no seguinte cenário. Minha primeira tentativa não usou macros, mas não funcionou, porque não posso herdar o mesmo traço duas vezes.

trait AddF[T] {
  def f(t: T) { /* ...do sthg ... */ }
}

class MyClass extends AddF[Int] with AddF[String]

Com a solução macro eu poderia escrever

class MyClass extends MyTrait {
  addF[Int]()
  addF[String]()
}

Existe uma maneira de fazer isso com macros scala? Ou existe outra maneira de conseguir isso?

questionAnswers(2)

yourAnswerToTheQuestion