読者です 読者をやめる 読者になる 読者になる

型パラメータ付きメソッドを持つトレイトとコンパニオンオブジェクト

タイトルはなんだか難しいですが、要は以下のコードのコンパイルを通したいということです。

trait Test {
  def apply[A](value: A): String
}

object Test {
  def apply[A](f: A => String): Test = new Test {
    def apply[A](value: A): String = f(value)
  }
}

上記のソースだと、Testオブジェクト#applyの型パラメータAとTestトレイト#applyの型パラメータが別々のものなので、コンパイルが通りません。

error: type mismatch;
found   : value.type (with underlying type A)
required: A
        def apply[A](value: A): String = f(value)
                                           ^

どうにかする方法はないでしょうか・・。