As much as I like Clojure (and Racket/Scheme/Lisp), it's a dynamically typed language and is a nightmare to work with on a large scale project - similar to Python. Those languages are much better suited to small projects. F# would have been a fine choice, but I think Haskell was an excellent choice despite its initial drawbacks.