grouped-list 0.2.1.0 → 0.2.1.1
raw patch · 3 files changed
+9/−5 lines, 3 filesdep ~base
Dependency ranges changed: base
Files
- Data/GroupedList.hs +4/−3
- grouped-list.cabal +2/−2
- test/examples.hs +3/−0
Data/GroupedList.hs view
@@ -62,7 +62,7 @@ ) import qualified Prelude as Prelude import Data.Pointed-import Data.Foldable (Foldable (..), toList, foldrM)+import Data.Foldable (Foldable (..), toList) import Data.List (group) import Data.Sequence (Seq) import qualified Data.Sequence as S@@ -71,6 +71,7 @@ import Control.Arrow (second) import qualified Data.Map.Strict as M import Data.Functor.Identity (Identity (..))+import Control.Monad (foldM) ------------------------------------------------------------------ ------------------------------------------------------------------@@ -467,9 +468,9 @@ -> acc -- ^ Initial value of the accumulator. -> Grouped a -> m (acc, Grouped b)-traverseGroupedByGroupAccum f acc0 (Grouped gs) = foldrM go (acc0, mempty) gs+traverseGroupedByGroupAccum f acc0 (Grouped gs) = foldM go (acc0, mempty) gs where- go g (acc, gd) = second (<> gd) <$> f acc g+ go (acc, gd) g = second (gd <>) <$> f acc g ------------------------------------------------------------------ ------------------------------------------------------------------
grouped-list.cabal view
@@ -1,5 +1,5 @@ name: grouped-list-version: 0.2.1.0+version: 0.2.1.1 synopsis: Grouped lists. Equal consecutive elements are grouped. description: Grouped lists work like regular lists, except for two conditions:@@ -30,7 +30,7 @@ default-language: Haskell2010 exposed-modules: Data.GroupedList build-depends:- base >= 4.7 && < 4.9+ base >= 4.8 && < 4.9 , containers , pointed , deepseq
test/examples.hs view
@@ -7,6 +7,7 @@ import Data.GroupedList (Grouped) import qualified Data.GroupedList as GL import Control.Monad (unless)+import Data.Functor.Identity (=:) :: (Show a, Eq a) => a -> a -> IO () x =: y = unless (x == y) $ do@@ -59,3 +60,5 @@ =: [1,2,3,3] GL.zipWith (+) [1,2,1,1] [2,1,1,2] =: [3,3,2,3]+ runIdentity (fmap snd $ GL.traverseGroupedByGroupAccum (\acc g -> Identity (acc+1, GL.map (+acc) $ GL.fromGroup g)) 0 [1,2,3,3,4])+ =: [1,3,5,5,7]