Earlier quoted context omitted.
All unit test assertions can be caught by a type checker.
Your type checker catches array indexing bugs? Impressive.
val fooList = List(1,2,3)
fooList.map(...)
you'll _never_ hit the types of bugs you're referring to.If you fooList(3), then of course you're hosed, but that's not the type checker's fault ;-)