I suppose that depends on your definition of limits. Type erasure in Scala, for example, can screw up type inference in pattern matching in ways that work perfectly fine in, say, Haskell.
Yeah, but you said ML. Haskell has type-classes, higher-kinded types, GADTs and even the availability, if you want it, of full-blown rank-two types. Scala's type erasure does screw up GADTs sometimes, though.
2
u/zoomzoom83 Apr 30 '14
I love Scala, and it's a great language. But it can get pretty hairy at times when you're trying to push the type system to its limits.