summaryrefslogtreecommitdiff
path: root/libraries/base/Control/Monad/Zip.hs
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/base/Control/Monad/Zip.hs')
-rw-r--r--libraries/base/Control/Monad/Zip.hs14
1 files changed, 14 insertions, 0 deletions
diff --git a/libraries/base/Control/Monad/Zip.hs b/libraries/base/Control/Monad/Zip.hs
index 5b670085d4..beef913119 100644
--- a/libraries/base/Control/Monad/Zip.hs
+++ b/libraries/base/Control/Monad/Zip.hs
@@ -21,7 +21,9 @@ module Control.Monad.Zip where
import Control.Monad (liftM, liftM2)
import Data.Functor.Identity
import Data.Monoid
+import Data.Ord ( Down(..) )
import Data.Proxy
+import qualified Data.List.NonEmpty as NE
import GHC.Generics
-- | `MonadZip` type class. Minimal definition: `mzip` or `mzipWith`
@@ -59,6 +61,12 @@ instance MonadZip [] where
mzipWith = zipWith
munzip = unzip
+-- | @since 4.9.0.0
+instance MonadZip NE.NonEmpty where
+ mzip = NE.zip
+ mzipWith = NE.zipWith
+ munzip = NE.unzip
+
-- | @since 4.8.0.0
instance MonadZip Identity where
mzipWith = liftM2
@@ -117,3 +125,9 @@ instance MonadZip f => MonadZip (M1 i c f) where
-- | @since 4.9.0.0
instance (MonadZip f, MonadZip g) => MonadZip (f :*: g) where
mzipWith f (x1 :*: y1) (x2 :*: y2) = mzipWith f x1 x2 :*: mzipWith f y1 y2
+
+-- instances for Data.Ord
+
+-- | @since 4.12.0.0
+instance MonadZip Down where
+ mzipWith = liftM2