макросы scala: добавление функции в класс

я новичок в макросах scala и ям с использованием Scala 2.10.0-RC3.

Я хочу написать макрос, который добавляет функцию к классу. Пример использования:

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)
}

Мне нужно это в следующем сценарии. Моя первая попытка нене использовал макросы, но нене могу работать, потому что я не могуt наследуют одну и ту же черту дважды.

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

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

С помощью макро решения я мог бы написать

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

Есть ли способ сделать это с помощью макросов Scala? Или есть другой способ добиться этого?

Ответы на вопрос(2)

Ваш ответ на вопрос