OCaml works well as a multiparadigm language. While it has some implementation quirks* , I like that its design doesn't force a pure functional approach. There's a quote in the French O'Reilly book, something like "Write your code in the style that is most natural, and give it a functional interface.". It seems like a good summary of the direction the language design points. (I just think there's a smaller, cleaner language buried inside OCaml...) Being "in between" can sometimes be a major strength.
* In particular, adding typeclasses would nicely resolve several minor annoyances with the languags.
* In particular, adding typeclasses would nicely resolve several minor annoyances with the languags.