bluefin 0.2.6.0 → 0.2.7.0
raw patch · 15 files changed
+51/−18 lines, 15 filesdep ~bluefin-internalPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bluefin-internal
API changes (from Hackage documentation)
+ Bluefin.Compound: handleOneWayCoercible :: forall (h :: Effects -> Type). (forall (e :: Effects) (es :: Effects). e :> es => OneWayCoercible (h e) (h es)) => HandleD h
+ Bluefin.Compound: oneWayCoercibleTrustMe :: forall (e :: Effects) (es :: Effects) h. e :> es => (forall (e' :: Effects) (es' :: Effects). e' :> es' => h e' -> h es') -> OneWayCoercibleD (h e) (h es)
Files
- CHANGELOG.md +8/−0
- bluefin.cabal +2/−2
- src/Bluefin.hs +3/−3
- src/Bluefin/Compound.hs +5/−2
- src/Bluefin/Consume.hs +2/−0
- src/Bluefin/EarlyReturn.hs +2/−0
- src/Bluefin/Eff.hs +4/−1
- src/Bluefin/Exception.hs +2/−0
- src/Bluefin/HandleReader.hs +10/−8
- src/Bluefin/IO.hs +5/−0
- src/Bluefin/Jump.hs +2/−0
- src/Bluefin/State.hs +2/−0
- src/Bluefin/Stream.hs +2/−0
- src/Bluefin/System/IO.hs +0/−2
- src/Bluefin/Writer.hs +2/−0
CHANGELOG.md view
@@ -1,3 +1,11 @@+# 0.2.7.0++* Add `Bluefin.Compound.handleOneWayCoercible`++* Add `Bluefin.Compound.oneWayCoercibleTrustMe`++* Add `OneWayCoercible` instances for Generic types+ # 0.2.6.0 * Add `Bluefin.Exception.GeneralBracket`, thanks to Shea Levy
bluefin.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: bluefin-version: 0.2.6.0+version: 0.2.7.0 license: MIT license-file: LICENSE author: Tom Ellis@@ -42,6 +42,6 @@ Bluefin.System.IO, Bluefin.Writer, build-depends:- bluefin-internal >= 0.3.3.0 && < 0.4+ bluefin-internal >= 0.3.5.0 && < 0.4 hs-source-dirs: src default-language: Haskell2010
src/Bluefin.hs view
@@ -248,7 +248,7 @@ -- @ -- ** \"Synthetic\" effect systems provide fine-grained effects and encapsulation- --+ -- | The approach of building effects from smaller pieces by -- combining algebraic data types, and then interpreting those -- pieces to "handle" some of the effects can be called the@@ -265,7 +265,7 @@ -- possible effects by handling an effect. -- *** The downside of synthetic effects- --+ -- | Unfortunately, synthetic effects have two notable downsides: -- firstly they have unpredictable performance, and secondly they -- make it hard to achieve resource safety. The first point –@@ -305,7 +305,7 @@ -- Brackets](https://academy.fpblock.com/blog/2017/06/tale-of-two-brackets/)". -- ** @IO@-wrapper effect systems- --+ -- | -- -- An alternative to synthetic effects that does allows
src/Bluefin/Compound.hs view
@@ -661,9 +661,12 @@ -- | The documentation for 'Handle' shows how to use -- @OneWayCoercible@ to define @Handle@ instances.- OneWayCoercible.OneWayCoercible(OneWayCoercible.oneWayCoercibleImpl),- OneWayCoercibleHandle(MkOneWayCoercibleHandle),+ OneWayCoercible.OneWayCoercible (OneWayCoercible.oneWayCoercibleImpl),+ OneWayCoercibleHandle (MkOneWayCoercibleHandle),+ handleOneWayCoercible, OneWayCoercible.gOneWayCoercible,+ oneWayCoercibleTrustMe,+ -- | Bluefin re-exports @Generic@ for convenience. OneWayCoercible.Generic, -- ** Other functions for compound effects
src/Bluefin/Consume.hs view
@@ -5,10 +5,12 @@ -- * Handle Consume,+ -- * Handlers consumeEach, consumeStream, streamConsume,+ -- * Effectful operations await, takeConsume,
src/Bluefin/EarlyReturn.hs view
@@ -5,8 +5,10 @@ -- * Handle EarlyReturn,+ -- * Handlers withEarlyReturn,+ -- * Effectful operations returnEarly, )
src/Bluefin/Eff.hs view
@@ -1,21 +1,24 @@ module Bluefin.Eff ( -- * 'Eff' monad Eff,+ -- * Run an 'Eff' runPureEff, runEff_, runEff,+ -- * Resource management bracket, finally,+ -- * Type classes -- | See "Bluefin.Eff.IO" for the most direct way of doing I/O in -- Bluefin. If you really want to use 'MonadIO' you can use -- 'withMonadIO'.- withMonadIO, withMonadFail,+ -- * Effect tracking Effects, (:>),
src/Bluefin/Exception.hs view
@@ -1,10 +1,12 @@ module Bluefin.Exception ( -- * Handle Exception,+ -- * Handlers try, handle, catch,+ -- * Effectful operations throw, rethrowIO,
src/Bluefin/HandleReader.hs view
@@ -11,14 +11,16 @@ -- new behaviors. module Bluefin.HandleReader- (-- * Handle- HandleReader,- -- * Handlers- runHandleReader,- -- * Effectful operations- askHandle,- localHandle,+ ( -- * Handle+ HandleReader,++ -- * Handlers+ runHandleReader,++ -- * Effectful operations+ askHandle,+ localHandle, )- where+where import Bluefin.Internal
src/Bluefin/IO.hs view
@@ -3,20 +3,25 @@ -- * Handle IOE,+ -- * Handlers runEff_, runEff,+ -- * Effectful operations effIO, rethrowIO,+ -- * IO type classes withMonadIO, withEffToIO_, withEffToIOCloneHandle,+ -- ** @EffReader@ EffReader, effReader, runEffReader,+ -- ** Deprecated versions withEffToIO, )
src/Bluefin/Jump.hs view
@@ -6,8 +6,10 @@ -- * Handle Jump,+ -- * Handlers withJump,+ -- * Effectful operations jumpTo, )
src/Bluefin/State.hs view
@@ -1,10 +1,12 @@ module Bluefin.State ( -- * Handle State,+ -- * Handlers evalState, runState, withState,+ -- * Effectful operations get, put,
src/Bluefin/Stream.hs view
@@ -8,6 +8,7 @@ -- * Handle Stream,+ -- * Handlers forEach, yieldToList,@@ -20,6 +21,7 @@ catMaybes, consumeStream, streamConsume,+ -- * Effectful operations yield, inFoldable,
src/Bluefin/System/IO.hs view
@@ -1,5 +1,4 @@ -- | A safer interface to @System.IO.'System.IO.Handle'@- module Bluefin.System.IO ( -- * Handle Handle,@@ -16,7 +15,6 @@ hFlush, -- * Unsafe- unsafeWithHandle, ) where
src/Bluefin/Writer.hs view
@@ -6,9 +6,11 @@ -- * Handle Writer,+ -- * Handlers runWriter, execWriter,+ -- * Effectful operations tell, )