@chengpohi, ( - ) :
trait A
trait B
implicit class RichA[Q <: A](q: Q){ def f = q }
implicit class RichB[Q <: B](q: Q){ def f = q }
scala> (new A{}).f
res0: A = $anon$1@39c1fe0b
scala> (new B{}).f
res1: B = $anon$1@20011bf
, , , Scala Java ( ), Java- Scala . ( ) - , , JVM invokestatic
:
, . . 9 , .
invokestatic , , ( ). . , , methodname .
, , Q <: A
- Q
, , , @chengpohi, ( - runtime-type ).
Haskell, , ( ), , .
P.S. , Haskell ( ) , Java.