<div class="gmail_quote">The code executed by uniqueness types is somehow similar to the internal code executed in a state monad (or in the case of IO, the IO monad). The main difference is that the pairs of results  (state, value) are explicitly written in Clean by the programmer and the  type sytem assures that the order of executions makes sense at compile time, whereas in the case of the state monad the sequence of instructions is lazily assembled at runtime in the first step and executed in a second step. So there is a little more overhead in haskell but the code is higher level.<div>

<br></div><div>Am I right?</div><div><br></div><div><br><div><br><div class="gmail_quote">2009/11/4 wren ng thornton <span dir="ltr">&lt;<a href="mailto:wren@freegeek.org" target="_blank">wren@freegeek.org</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>Stephen Tetley wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">
2009/11/3 Andrew Coppin &lt;<a href="mailto:andrewcoppin@btinternet.com" target="_blank">andrewcoppin@btinternet.com</a>&gt;:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
As far as I can tell, Clean is to Haskell as C is to Pascal. I.e., Clean is<br>
notionally very similar to Haskell, but with lots of added clutter,<br>
complexity and general ugliness - but it&#39;s probably somehow more<br>
machine-efficient as a result.<br>
<br>
(All of which makes the name &quot;Clean&quot; rather ironic, IMHO.)<br>
</blockquote>
<br></div>
OUuch - you really could put it the other way round.<br>
</blockquote>
<br></div><div class="im">
Part of this really comes down to how one feels about the monads vs uniqueness types argument. It&#39;s a silly argument to have since the ideas are orthogonal and only really intersect at IO, but there&#39;s history there which lead to the current state of things.<br>


<br>
Sometimes in Haskell I&#39;ve thought about how uniqueness typing would make something faster, but in general all the plumbing associated with it in Clean makes me feel like I&#39;m writing systems-level code (i.e. C, asm) instead of using a high-level language. The extra plumbing really makes it feel dirtier to work with. That doesn&#39;t mean Clean is bad, but I think it does contribute to the &quot;cluttered&quot; feeling Haskellers get.<br>


<br>
But as I said, it&#39;s a silly argument and folks should use whichever gives them warm fuzzies. I also have a vague unnameable distaste whenever working with Python, and rather enjoy working with Perl. Nobody&#39;s perfect :)<br>


<br>
-- <br>
Live well,<br><font color="#888888">
~wren</font><div><div></div><div><br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</div></div></div></blockquote></div><br></div></div>
</div><br>