scala> class X[A] {
| def exec(implicit t:A =:= Int):Unit = println("exec")
| }
defined class X
scala> val x = new X[Int]
x: X[Int] = X@66b60da0
scala> x.exec
exec
scala> val x2 = new X[String]
x2: X[String] = X@153d4e5a
scala> x2.exec
<console>:11: error: Cannot prove that String =:= Int.
x2.exec
^
だいたいこんな感じ。
A=:=Bみたいな感じで。
上の例だと引数の型がIntじゃないと弾かれる。