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 +0/−2
- Util/Monad/Primitive/Unsafe.hs +12/−0
- util-primitive-control.cabal +2/−2
− 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