Its most significant fault and also its greatest virtue: there's no way to integrate Java's type system into a proper HM type system. As Scala's (mostly) seamless, bidirectional Java integration is its prime selling point (otherwise, why not just use Haskell?), this complaint mostly misses the point.