What about OCaml ?
OCaml features: a static type system, type inference, parametric polymorphism, tail recursion, pattern matching, first class lexical closures, functors (parametric modules), exception handling, and incremental generational automatic garbage collection.
I think that it satisfies the following:
Important:
- Nice, clean, sane syntax and consistent, intuitive semantics. Basically a well thought-out, fun to use, modern language.
- Multiple paradigms. No one paradigm is right for every project, or even every small subproblem within a project.
- An interesting language that actually affects the way one thinks about programming.
Somewhat important:
- Performance. It would be nice if performance was decent, but when performance is a real priority, I'll use D instead.
- Well-documented.