ilist 0.1.0.0 → 0.2.0.0
raw patch · 3 files changed
+11/−5 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Data.List.Index: izipWithM :: Monad m => (Int -> a -> b -> m c) -> [a] -> [b] -> m [c]
+ Data.List.Index: izipWithM :: Applicative f => (Int -> a -> b -> f c) -> [a] -> [b] -> f [c]
- Data.List.Index: izipWithM_ :: Monad m => (Int -> a -> b -> m c) -> [a] -> [b] -> m ()
+ Data.List.Index: izipWithM_ :: Applicative f => (Int -> a -> b -> f c) -> [a] -> [b] -> f ()
Files
- CHANGELOG.md +4/−0
- ilist.cabal +1/−1
- lib/Data/List/Index.hs +6/−4
CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.2.0.0++* `izipWithM` and `izipWithM_` have been generalised from `Monad` to `Applicative` (which mimics what was done in base-4.9).+ # 0.1.0.0 First release.
ilist.cabal view
@@ -1,5 +1,5 @@ name: ilist-version: 0.1.0.0+version: 0.2.0.0 synopsis: Optimised list functions for doing index-related things description: Optimised list functions for doing index-related things. They're faster than common idioms in all cases, and sometimes they fuse better as well.
lib/Data/List/Index.hs view
@@ -78,8 +78,10 @@ #if __GLASGOW_HASKELL__ < 710 import Control.Applicative+import Data.Traversable (sequenceA) #endif +import Data.Foldable (sequenceA_) import Data.Maybe import Data.Monoid import GHC.Exts@@ -612,10 +614,10 @@ go _ _ _ _ _ _ _ _ = [] {-# INLINE izipWith7 #-} -izipWithM :: Monad m => (Int -> a -> b -> m c) -> [a] -> [b] -> m [c]-izipWithM f as bs = sequence (izipWith f as bs)+izipWithM :: Applicative f => (Int -> a -> b -> f c) -> [a] -> [b] -> f [c]+izipWithM f as bs = sequenceA (izipWith f as bs) {-# INLINE izipWithM #-} -izipWithM_ :: Monad m => (Int -> a -> b -> m c) -> [a] -> [b] -> m ()-izipWithM_ f as bs = sequence_ (izipWith f as bs)+izipWithM_ :: Applicative f => (Int -> a -> b -> f c) -> [a] -> [b] -> f ()+izipWithM_ f as bs = sequenceA_ (izipWith f as bs) {-# INLINE izipWithM_ #-}