| 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 |
Control.Monad.Zip
Description
Monadic zipping (used for monad comprehensions)
Documentation
class Monad m => MonadZip m where #
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)
Instances
| MonadZip [] # | Since: 4.3.1.0 |
| MonadZip Maybe # | Since: 4.8.0.0 |
| MonadZip Par1 # | Since: 4.9.0.0 |
| MonadZip Last # | Since: 4.8.0.0 |
| MonadZip First # | Since: 4.8.0.0 |
| MonadZip Product # | Since: 4.8.0.0 |
| MonadZip Sum # | Since: 4.8.0.0 |
| MonadZip Dual # | Since: 4.8.0.0 |
| MonadZip Identity # | Since: 4.8.0.0 |
| MonadZip NonEmpty # | Since: 4.9.0.0 |
| MonadZip (U1 *) # | Since: 4.9.0.0 |
| MonadZip (Proxy *) # | Since: 4.9.0.0 |
| MonadZip f => MonadZip (Rec1 * f) # | Since: 4.9.0.0 |
| MonadZip f => MonadZip (Alt * f) # | Since: 4.8.0.0 |
| (MonadZip f, MonadZip g) => MonadZip ((:*:) * f g) # | Since: 4.9.0.0 |
| (MonadZip f, MonadZip g) => MonadZip (Product * f g) # | Since: 4.9.0.0 |
| MonadZip f => MonadZip (M1 * i c f) # | Since: 4.9.0.0 |