On a practical level, I&#x27;m very fond of the strict evaluation and the lack of purity. Its easier to write &quot;traditional&quot; imperative algorithms when you don&#x27;t need to use monads or monad transformers everywhere.<p>When it comes to resources, I don&#x27;t think Haskell is strictly superior. opam, merlin, and utop are pretty nice... I&#x27;m also very fond of the menhir parser generator.<p>On a theoretical level, Ocaml does have some neat things missing from Haskell, like its module system (with functors), polymorphic variants, etc...<p>---<p>BTW, I wouldn&#x27;t dump Ocaml in the &quot;object oriented&quot; side of things together with Scala. Nowadays the OO infrastructure is more commonly used for polymorphic variants than for OO, to be honest.