packages feed

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 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_ #-}