packages feed

hw-prim 0.6.2.29 → 0.6.2.30

raw patch · 2 files changed

+24/−1 lines, 2 filesdep +unliftio-corePVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

Dependencies added: unliftio-core

API changes (from Hackage documentation)

+ HaskellWorks.Control.Monad.Lazy: interleaveSequenceIO :: [IO a] -> IO [a]
+ HaskellWorks.Control.Monad.Lazy: interleaveSequenceM :: MonadUnliftIO m => [m a] -> m [a]

Files

hw-prim.cabal view
@@ -1,7 +1,7 @@ cabal-version:  2.2  name:           hw-prim-version:        0.6.2.29+version:        0.6.2.30 synopsis:       Primitive functions and data types description:    Primitive functions and data types. category:       Data@@ -42,6 +42,7 @@ common semigroups           { build-depends: semigroups           >= 0.8.4      && < 0.20   } common transformers         { build-depends: transformers         >= 0.4        && < 0.6    } common vector               { build-depends: vector               >= 0.12       && < 0.13   }+common unliftio-core        { build-depends: unliftio-core        >= 0.1.2.0    && < 0.2    }  common common   default-language:   Haskell2010@@ -57,8 +58,10 @@           , mmap           , semigroups           , transformers+          , unliftio-core           , vector   exposed-modules:+    HaskellWorks.Control.Monad.Lazy     HaskellWorks.Data.AtIndex     HaskellWorks.Data.Branchless     HaskellWorks.Data.ByteString
+ src/HaskellWorks/Control/Monad/Lazy.hs view
@@ -0,0 +1,20 @@+module HaskellWorks.Control.Monad.Lazy+  ( interleaveSequenceIO+  , interleaveSequenceM+  ) where++import Control.Monad.IO.Unlift++import qualified System.IO.Unsafe as IO++interleaveSequenceIO :: [IO a] -> IO [a]+interleaveSequenceIO []       = return []+interleaveSequenceIO (fa:fas) = do+  a <- fa+  as <- IO.unsafeInterleaveIO (interleaveSequenceIO fas)+  return (a:as)++interleaveSequenceM :: MonadUnliftIO m => [m a] -> m [a]+interleaveSequenceM as = do+  f <- askUnliftIO+  liftIO $ interleaveSequenceIO (fmap (unliftIO f) as)