Proposal: Add IsList instance for ZipList

Henning Thielemann lemming at
Thu Jun 11 09:26:02 UTC 2015

On Wed, 10 Jun 2015, David Feuer wrote:

> foo = getZipList $ [f,g,h] <$> [a,b,c] <*> [d,e,i]
> looks a lot better than
> bar = getZipList $ ZipList [f,g,h] <$> ZipList [a,b,c] <*> ZipList [d,e,i]

But the second one is less surprising.

For my taste it would have been better to give the ZipList semantics to 
the list type by default, because there are more data types that we can 
give a ZipList-like Applicative instance. The current non-determinism 
implementation for Applicative [] and Monad [] could have been used for a 
special non-determinism list type. But this instance was defined when 
there was no Applicative. :-(

More information about the Libraries mailing list