OCaml provides some nice syntactic sugar for imperative programming patterns like &quot;if&quot; statements.  But, I wouldn&#x27;t really call it an imperative language, as it has its roots firmly in ML (which is not such a bad thing after all).<p>Arguing that ML had a precursor to Haxe abstract types is well within reason, but I&#x27;m not so sure they&#x27;re the same.  I&#x27;ll have to do some more reading.