>>5
Static typing is premature optimization. Types are supposed to be only compiler hints that result in faster code, which interestingly Haskell fails to deliver.
Lazy evaluation is implementable in Lisp and full featured libraries exist. Simple implementation is even discussed in SICP
which you should read, by the way.
type classes
See above about types. The same functionality is available in Lisp nevertheless.
Monads are implementable in Lisp. But 90% of all use of monads in Haskell is to mimic practices that are easily expressible in everything else. They are just hack to make Haskell suck a tiny bit less, but they don't do that much of a good work.
>>6
That's just stupid. What if I don't know how many parameters will I want to supply to the function? If I wanted to use language that limits me even in cases this simple I'd use C. Oh, wait, even C does allow variable number of arguments.