Copyright | (c) Nils Schweinsberg 2011, (c) George Giorgidze 2011 (c) University Tuebingen 2011 |
---|---|

License | BSD-style (see the file libraries/base/LICENSE) |

Maintainer | libraries@haskell.org |

Stability | experimental |

Portability | portable |

Safe Haskell | Safe |

Language | Haskell2010 |

Monadic zipping (used for monad comprehensions)

# Documentation

class Monad m => MonadZip m where Source

`MonadZip`

type class. Minimal definition: `mzip`

or `mzipWith`

Instances should satisfy the laws:

- Naturality :

liftM (f *** g) (mzip ma mb) = mzip (liftM f ma) (liftM g mb)

- Information Preservation:

liftM (const ()) ma = liftM (const ()) mb ==> munzip (mzip ma mb) = (ma, mb)