I suppose for consistency you need to allow any number of holes in a tuple, so
(,True,) is an expression of type a -> b -> (a,Bool,b).

One possible problem with this is that it means you can no longer think on a syntactic
level of tuples with more than two elements being equivalent to the obvious 
construction
from tuples with two elements.  For example 
   (True,,) obviously has type a -> b -> (Bool,a,b)
so a novice might assume that
   (True,(,)) has type a -> b -> (Bool,(a,b)).  
But instead it (already) has type (Bool,a->b->(a,b)).

Actually I'm rather dubious about the whole idea.  When I look at a tuple it's
nice to be able to know it's not a function without having to look for duplicate
commas.  Wouldn't it be clearer just to write out the lambdas?


Reply via email to