| > No doubt.  But seriously, I was thinking of a "built-in" Zippable
| > instance just like we have for Ord, Enum, Show, etc.  
| 
| That's what I thought you meant. But since I have a pet peeve about
| how Haskell implementations work ...

Is your peeve related to the built-in "deriving" mechanism?
I agree!    You might like to look at the paper Ralf Hinze and I
have submitted to the Haskell Workshop
        http://research.microsoft.com/~simonpj/#derive

It doesn't give a way to have a proper infinite family of tuples, but
it does make generic programming easier.  

| > > I have a paper ("The Zip Calculus", MPC 2000) which is a bit more
| > > ambitious, and is correspondingly more complex.  My 
| solution allows
| > > one to write the generic zip without use of the class system and
| > > the theoretic need for an infinite number of instance 
| declarations.
| > > It allows you to write transpose
| > >   transpose  :: ((a,b),(c,d),(e,f)) -> ((a,c,e),(b,d,f))
| > > generically for any m*n "matrix".
| > >
| > > I hope to write up a proposal for how to add this 
| capability to Haskell in the not too distant future.

That certainly sounds interesting.

Simon

Reply via email to