[Haskell-cafe] Learn You a Haskell for Great Good - a few doubts

wren ng thornton wren at freegeek.org
Fri Mar 4 07:14:36 CET 2011


On 3/3/11 2:58 AM, Antti-Juhani Kaijanaho wrote:
> On Thu, Mar 03, 2011 at 12:29:44PM +0530, Karthick Gururaj wrote:
>> Thanks - is this the same "unit" that accompanies IO in "IO ()" ? In
>> any case, my question is answered since it is not a tuple.
>
> It can be viewed as the trivial 0-tuple.

Except that this is problematic since Haskell doesn't have 1-tuples 
(which would be distinct from plain values in that they have an extra 
bottom).

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's tuples aren't quite products.[1]


[1] To be fair, a lot of thought went into choosing for them to be the 
way they are. The way they are generally matches the semantics we 
desire, but this is one of the places where they don't. The only way to 
"fix" this is to have two different product types, which is problematic 
for the obvious reasons.

-- 
Live well,
~wren



More information about the Haskell-Cafe mailing list