<br><br><div class="gmail_quote">On Thu, Mar 3, 2011 at 10:14 PM, wren ng thornton <span dir="ltr">&lt;<a href="mailto:wren@freegeek.org">wren@freegeek.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On 3/3/11 2:58 AM, Antti-Juhani Kaijanaho wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Thu, Mar 03, 2011 at 12:29:44PM +0530, Karthick Gururaj wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks - is this the same &quot;unit&quot; that accompanies IO in &quot;IO ()&quot; ? In<br>
any case, my question is answered since it is not a tuple.<br>
</blockquote>
<br>
It can be viewed as the trivial 0-tuple.<br>
</blockquote>
<br></div>
Except that this is problematic since Haskell doesn&#39;t have 1-tuples (which would be distinct from plain values in that they have an extra bottom).<br>
<br></blockquote><div><br></div><div>I don&#39;t get this line of thought.  I understand what you&#39;re saying, but why even bother trying to distinguish between bottoms when they can&#39;t be compared by equality, or even computed? The type (forall a . a) doesn&#39;t contain any values!   It is empty, and so is a subset of any other type.  If you choose to interpret all bottoms as being the same non-existent, unquantifiable (in the language of Haskell) &quot;proto-value&quot;, you get the isomorphism between types a and (a), as types.  Indeed, those are the semantics in use by the language.  A value written (a) is interpreted as a.  A type written (a) is interpreted as a.  </div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
In an idealized world, yes, unit can be thought of as the nullary product which serves as left- and right-identity for the product bifunctor. Unfortunately, Haskell&#39;s tuples aren&#39;t quite products.[1]<br></blockquote>
<div><br></div><div>I&#39;m not seeing this either.  (A,B) is certainly the Cartesian product of A and B.  In what sense are you using &quot;product&quot; here? Is your complaint a continuation of your previous (implicit) line of thought regarding distinct bottoms?</div>
<div><br></div><div><br></div></div>