packages feed

util-primitive-control 0.1.0.0 → 0.1.1.0

raw patch · 3 files changed

+14/−4 lines, 3 filessetup-changed

Files

− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
+ Util/Monad/Primitive/Unsafe.hs view
@@ -0,0 +1,12 @@+module Util.Monad.Primitive.Unsafe where++import Control.Monad.Base.Control+import Control.Monad.Primitive+import Data.Basic++unsafeInterleaveWhileJust :: (MonadBaseControl m, PrimBase (Base m)) => m (Maybe a) -> (a -> m ()) -> m [a]+unsafeInterleaveWhileJust mma f = go+  where+    go = mma >>= liftBaseOp_ unsafeInterleave . \ case+        Nothing -> pure []+        Just a -> (a :) <$> liftBaseOp_ unsafeInterleave (a `seq` f a *> go)
util-primitive-control.cabal view
@@ -1,5 +1,5 @@ name:                util-primitive-control-version:             0.1.0.0+version:             0.1.1.0 synopsis:            Utilities for stateful primitive types and types based on them -- description: license:             BSD3@@ -14,7 +14,7 @@  library   hs-source-dirs:      .-  exposed-modules:     +  exposed-modules:     Util.Monad.Primitive.Unsafe   build-depends:       base >= 4.7 && < 5                      , control >=0.1 && <0.2                      , primitive >=0.6.5 && <0.7