ML has a formal definition[1]; why not Haskell?&nbsp; Would this be a Good Thing, or a Waste Of Time?&nbsp; The Report strikes me as a hybrid of formal and informal.&nbsp; I guess that&#39;s not a problem so far, but there aren&#39;t that many implementations; if we had dozens, how could we verify conformance?&nbsp; A formal semantics would be useful, but it would also be Fun to use Category Theory notation in a language definition.<br>
<br>Such a task would be way beyond my abilities, but I have come up with an idea for a formal semantics of IO and other non-deterministic elements of the language that I think is kind of interesting.&nbsp; It&#39;s inspired by Category Theory and the Z specification language.&nbsp;&nbsp; See&nbsp; my (brief) <a href="http://syntax.wikidot.com/blog:3">blog article</a>.<br>
<br>Actually, I&#39;m in a state of rather intense euphoria about it, so a bucket of cold water realism over my head might be a Good Thing.&nbsp; Then I could get some sleep instead of obsessing about category theory and Haskell.&nbsp; :)<br>
<br>I propose any formal definition include the following warning, modeled on Knuth&#39;s warning about MetaFont:<br><br>&nbsp; WARNING:&nbsp; Haskell can be hazardous to your other interests.&nbsp; Once you get hooked, you will develop intense feelings about language design; semantic models will intrude on the program texts you read.&nbsp; And you will perpetually be thinking of improvements to the programs that you see everywhere, including those of your own design.<br>
<br>Thanks,<br><br>gregg<br><br><br>[1] The Definition of Standard ML (Revised); a preview is on Google Books<br>