OCaml has most of the &quot;good and easy parts&quot; of Haskell, without the ones that prevent you from using your old habits:<p>* no lazy evaluation =&gt; your usual sense of what&#x27;s executed when isn&#x27;t challenged<p>* imperative features included, albeit often syntactically ugly =&gt; You&#x27;re not stuck because you need to compose 3 monad transformers together, you can&#x27;t make sense out of the resulting types, and you have absolutely no idea of how the result might be executed anymore. Empirically, the imperative syntax is just ugly enough to make you slightly ashamed of going imperative, and spend 1&#x2F;4 hour figuring out whether there&#x27;s a clean and reasonably easy alternative. I don&#x27;t known whether it&#x27;s been done on purpose but it&#x27;s well done :-)<p>What I miss the most from Haskell in OCaml are type classes. I bet they would have been included, if OCaml had been invented after Haskell.<p>From Haskell you keep a type system which helps you thinking and finds many error classes, encouragement to think functionally, godd terseness&#x2F;readability compromise. If you have the time, I&#x27;d advise you to learn Haskell, in order to stretch your mind and become an excellent OCaml developer, the way learning Latin makes you a better French or Italian writer.<p>Re: lack of tooling: I&#x27;d be surprised if F wasn&#x27;t properly supported, and if you&#x27;re targeting Windows that&#x27;s probably your best bet. More fundamentally, your truly valuable tooling isn&#x27;t the IDE, it&#x27;s the type system. I need a fancy IDE for Python or Java, not for OCaml.