monad-effect 0.2.0.0 → 0.2.1.0
raw patch · 3 files changed
+12/−13 lines, 3 files
Files
- CHANGELOG.md +8/−0
- monad-effect.cabal +1/−1
- src/Control/Monad/Effect.hs +3/−12
CHANGELOG.md view
@@ -3,3 +3,11 @@ ## 0.1.0.0 -- 2025-09-20 * First release of monad-effect++## 0.2.0.0 -- 2025-10-17++* Refactored `Control.System` to use bracket pattern by default, users of `Control.Monad.Effect` are not affected. Adding many new combinators.++## 0.2.1.0 -- 2025-11-05++* Exporting `lift`
monad-effect.cabal view
@@ -7,7 +7,7 @@ -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change-version: 0.2.0.0+version: 0.2.1.0 -- A short (one-line) description of the package. synopsis: A fast and lightweight effect system.
src/Control/Monad/Effect.hs view
@@ -46,6 +46,9 @@ -- * Transforming error , mapError + -- * Re exporting+ , lift+ -- * Lifting IO , liftIOException, liftIOAt, liftIOSafeWith, liftIOText, liftIOPrepend @@ -377,18 +380,6 @@ asyncEff <- liftBaseWith $ \runInBase -> async (runInBase $ unEffT' eff rs ss) return (RSuccess asyncEff, ss) {-# INLINE asyncEffT #-}---- | Note: this function seems to be a bit problematic,--- it seems to cause memory leak. Needs investigation.--- -- | A simpler version of asyncEffT that only returns the Result value, discarding the new state.--- asyncEffT_ ::--- ( MonadIO m--- , MonadBaseControl IO m--- , StM m (Result es a, SystemState c mods) ~ (Result es a, SystemState c mods)--- )--- => EffT' c mods es m a -> EffT' c mods NoError m (Async (Result es a))--- asyncEffT_ eff = fmap fst <$> asyncEffT eff--- {-# INLINE asyncEffT_ #-} -- | Restores the EffT' computation from an Async value created by asyncEffT. -- State will be replaced by the state inside the Async when it finishes.