Representing Tuple types as products

Thomas Davie tatd2 at
Mon Feb 6 09:06:38 EST 2006

On 6 Feb 2006, at 13:58, Ben Rudiak-Gould wrote:

> Thomas Davie wrote:
>> fst :: α × β → α
> even without Unicode we could allow
>     fst :: a * b -> a
> like ML. But I'm not sure I like this. ((a,b),c) and (a,(b,c)) and  
> (a,b,c) all feel distinct to me, but (a*b)*c, a*(b*c) and a*b*c  
> feel the same. I could easily get used to it, but I doubt I'd use  
> it as long as the old syntax remained available.

Indeed, I think this only really becomes applicable when unicode is  
available, because we're all used to seeing tuples being written as  
cross products on the theoretical side of things.  I'm just thinking  
that if we can get closer to the maths by using the greek letters,  
can we also get closer by using the same syntax?

I suspect that I would use it, but only where I was doing something  
like directly implementing an abstract machine - i.e. when I want the  
Haskell to look as much like the theory as possible.


More information about the Haskell-prime mailing list