<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 14 Apr 2010, at 09:12, Jonas Almström Duregård wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><blockquote type="cite">f,g :: Bool -&gt; Int<br></blockquote><blockquote type="cite">f x = 6<br></blockquote><blockquote type="cite">g x = 6<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">We can in Haskell compute that these two functions are equal, without solving the halting problem.<br></blockquote><br>what about these?<br>f,g :: Bool -&gt; Int<br>f x = 6<br>g x = x `seq` 6<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><br></div><div>As pointed out on #haskell by roconnor, we apparently don't care, this is a shame... &nbsp;We only care that x == y =&gt; f x == g y, and x == y can't tell if _|_ == _|_.</div><div><br></div><div>It's a shame that we can't use this to tell if two functions are equally lazy (something I would consider part of the semantics of the function).</div><div><br></div><div>Bob</div></body></html>