Adam D. Ruppe:
Of course, sometimes the type still matters,
Haskell programmers have a very different attitude toward types.
They do a kind of type-driven programming, even in small
programs. They lay down the data types (like the algebraic data
types that describe the data structures of the problem), and then
let the compiler, the type errors (and even a recent feature of
the compiler named type holes) to write down the solutions and be
guided toward correct code. This is kind of the opposite of
trying to remove types using dynamic typing, and it's also far
from the kind of strong static typing you see in Ada language.