OCaml accommodates imperative programming just fine: `if` without `else`, `for` loops, single semicolons as statement delimiters (without enclosing statement blocks in parentheses), records and objects containing mutable data, etc. OCaml isn&#x27;t like SML and Haskell, which &lt;strike&gt;do get in your way when you want to program imperatively&lt;&#x2F;strike&gt; push you a little bit more forcefully towards programming in a functional style.<p>On the other hand, Haxe lacks features like higher order modules and signature ascription, which give the programmer very fine-grained control over the scope of abstractions. Haxe&#x27;s abstract types are more like what ML had in the 70&#x27;s, before MacQueen invented the ML module system.