packages feed

hw-streams 0.0.0.4 → 0.0.0.5

raw patch · 2 files changed

+20/−8 lines, 2 filesdep ~QuickCheckdep ~ghc-primPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

Dependency ranges changed: QuickCheck, ghc-prim

API changes (from Hackage documentation)

+ HaskellWorks.Data.Streams.Stream: dupMap :: forall a b. (a -> b) -> (a -> b) -> Stream a -> Stream b

Files

hw-streams.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack  name:           hw-streams-version:        0.0.0.4+version:        0.0.0.5 synopsis:       Primitive functions and data types description:    Primitive functions and data types. category:       Data@@ -39,7 +39,7 @@   build-depends:       base            >= 4.8        && < 5     , bytestring      >= 0.9        && < 0.11-    , ghc-prim        >= 0.5.1.1    && < 0.6+    , ghc-prim        >= 0.4        && < 0.6     , hw-bits         >= 0.7.0.3    && < 0.8     , hw-prim         >= 0.6.2.17   && < 0.7     , mmap            >= 0.5        && < 0.6@@ -72,7 +72,7 @@   build-depends:       base            >= 4.8        && < 5     , bytestring      >= 0.9        && < 0.11-    , ghc-prim        >= 0.5.1.1    && < 0.6+    , ghc-prim        >= 0.4        && < 0.6     , hw-bits         >= 0.7.0.3    && < 0.8     , hw-prim         >= 0.6.2.17   && < 0.7     , mmap            >= 0.5        && < 0.6@@ -80,7 +80,7 @@     , vector          >= 0.12       && < 0.13     , semigroups      >= 0.8.4      && < 0.19     , transformers    >= 0.4        && < 0.6-    , QuickCheck          >= 2.10       && < 2.12+    , QuickCheck          >= 2.10       && < 2.13     , directory           >= 1.2        && < 1.4     , exceptions          >= 0.8        && < 0.11     , hedgehog            >= 0.5        && < 0.7@@ -104,7 +104,7 @@   build-depends:       base            >= 4.8        && < 5     , bytestring      >= 0.9        && < 0.11-    , ghc-prim        >= 0.5.1.1    && < 0.6+    , ghc-prim        >= 0.4        && < 0.6     , hw-bits         >= 0.7.0.3    && < 0.8     , hw-prim         >= 0.6.2.17   && < 0.7     , mmap            >= 0.5        && < 0.6
src/HaskellWorks/Data/Streams/Stream.hs view
@@ -1,6 +1,7 @@-{-# LANGUAGE CPP        #-}-{-# LANGUAGE GADTs      #-}-{-# LANGUAGE RankNTypes #-}+{-# LANGUAGE CPP                 #-}+{-# LANGUAGE GADTs               #-}+{-# LANGUAGE RankNTypes          #-}+{-# LANGUAGE ScopedTypeVariables #-}  module HaskellWorks.Data.Streams.Stream where @@ -123,3 +124,14 @@           Skip    stateB1 -> Skip     (stateA0, Just (Stream stepB stateB1 Unknown))           Done            -> Skip     (stateA0, Nothing) {-# INLINE concatMap #-}++dupMap :: forall a b. (a -> b) -> (a -> b) -> Stream a -> Stream b+dupMap f g (Stream stepA stateA _) = Stream (mkStepB stepA) (stateA, Nothing) Unknown+  where mkStepB :: (s -> Step s a) -> (s, Maybe b) -> Step (s, Maybe b) b+        mkStepB step (s, mw) = case mw of+          Nothing -> case step s of+            Yield a t -> Yield (f a) (t, Just (g a))+            Skip t    -> Skip (t, Nothing)+            Done      -> Done+          Just w -> Yield w (s, Nothing)+{-# INLINE dupMap #-}