Uncle Bob, you recently wrote a post titled Types And Tests.
It generated quite a lot of buzz. It was also, in my opinion, a bit naive
regarding the current state of affairs in type systems. This made it difficult
for me to understand exactly what your points were and I would like to understand
those better. To help clarify those I'm going to provide counter examples to
your claims and propose other questions that both might help me better understand
what you mean. Hopefully someone else finds this useful as well. I'll be using
Ruby and Haskell for most code snippets as they are representative of the two
sides and I'm most familiar with them right now.