In the recent talk by Brian Goetz for JVMLS, he discussed adding haskell-like typeclasses to java (link), the very interesting concept he discusses about the rules they chose for their typeclasses, is that this will allow the entire typeclass instance (even for derived typeclasses from base typeclasses) to be runtime folded and inlined by the JVM, eventually achieving the same performance as an intrinsic (the example in particular was implementing the addition typeclass for a fictional float16 value type).
Scala’s type classes are too powerful in general (they can have state and a are essentially like any regular instance) to allow the compiler to compile them to constants like javac will/would, but given that the majority of scala’s typeclasses actually do restrict themselves to behaving like this, and the large performance boost at hand, would it make sense to add an annotation or a base type, that would force the typeclass to behave like this, in the same spirit as having an enum extend java.lang.Enum?