型パラメータ付きメソッドを持つトレイトとコンパニオンオブジェクト
タイトルはなんだか難しいですが、要は以下のコードのコンパイルを通したいということです。
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) ^
どうにかする方法はないでしょうか・・。