GHC already ignores the existence of seq, for instance when doing list fusion.<br>The unconstrained seq function just ruins too many things.<br>I say, move seq top a type class (where is used to be), and add an unsafeSeq<br>
for people who want to play dangerously.<br><br>&nbsp; -- Lennart<br><br><div class="gmail_quote">On Tue, May 6, 2008 at 3:27 PM, Luke Palmer &lt;<a href="mailto:lrpalmer@gmail.com">lrpalmer@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Tue, May 6, 2008 at 2:50 AM, apfelmus &lt;<a href="mailto:apfelmus@quantentunnel.de">apfelmus@quantentunnel.de</a>&gt; wrote:<br>
&gt; &nbsp;Concerning the folklore that &nbsp;seq &nbsp;destroys the monad laws, I would like<br>
&gt; &nbsp;to remark that as long as we don&#39;t apply &nbsp;seq &nbsp;to arguments that are<br>
&gt; &nbsp;functions, everything is fine. When &nbsp;seq &nbsp;is applied to functions,<br>
&gt; &nbsp;already simple laws like<br>
&gt;<br>
&gt; &nbsp; f . id = f<br>
&gt;<br>
&gt; &nbsp;are trashed, so it&#39;s hardly surprising that the monad laws are broken<br>
&gt; &nbsp;willy-nilly. That&#39;s because &nbsp;seq &nbsp;can be used to distinguish between<br>
&gt;<br>
&gt; &nbsp; _|_ :: A -&gt; B &nbsp; &nbsp;and &nbsp; \x -&gt; _|_ :: A -&gt; B<br>
&gt;<br>
&gt; &nbsp;although there shouldn&#39;t be a semantic difference between them.<br>
<br>
</div>It seems that there is a culture developing where people intentionally<br>
ignore the existence of seq when reasoning about Haskell. &nbsp;Indeed I&#39;ve<br>
heard many people argue that it shouldn&#39;t be in the language as it is<br>
now, that instead it should be a typeclass.<br>
<br>
I wonder if it&#39;s possible for the compiler to do more aggressive<br>
optimizations if it, too, ignored the existence of seq. &nbsp;Would it make<br>
it easier to do various sorts of lambda lifting, and would it make<br>
strictness analysis easier?<br>
<font color="#888888"><br>
Luke<br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">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></blockquote></div><br>