bluefin 0.0.15.0 → 0.0.16.0
raw patch · 4 files changed
+16/−11 lines, 4 filesdep ~bluefin-internalPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: bluefin-internal
API changes (from Hackage documentation)
+ Bluefin.IO: runEff_ :: (forall (e :: Effects). () => IOE e -> Eff e a) -> IO a
- Bluefin.Compound: class () => Handle (h :: Effects -> Type)
+ Bluefin.Compound: class Handle (h :: Effects -> Type)
- Bluefin.Compound: data () => Compound (e1 :: Effects -> Type) (e2 :: Effects -> Type) (ss :: Effects)
+ Bluefin.Compound: data Compound (e1 :: Effects -> Type) (e2 :: Effects -> Type) (ss :: Effects)
- Bluefin.Coroutine: data () => Coroutine a b (e :: Effects)
+ Bluefin.Coroutine: data Coroutine a b (e :: Effects)
- Bluefin.Eff: class () => (es1 :: Effects) :> (es2 :: Effects)
+ Bluefin.Eff: class (es1 :: Effects) :> (es2 :: Effects)
- Bluefin.Eff: data () => Eff (es :: Effects) a
+ Bluefin.Eff: data Eff (es :: Effects) a
- Bluefin.Eff: data () => Effects
+ Bluefin.Eff: data Effects
- Bluefin.Exception: data () => Exception exn (e :: Effects)
+ Bluefin.Exception: data Exception exn (e :: Effects)
- Bluefin.HandleReader: data () => HandleReader (h :: Effects -> Type) (e :: Effects)
+ Bluefin.HandleReader: data HandleReader (h :: Effects -> Type) (e :: Effects)
- Bluefin.IO: data () => EffReader r (es :: Effects) a
+ Bluefin.IO: data EffReader r (es :: Effects) a
- Bluefin.IO: data () => IOE (e :: Effects)
+ Bluefin.IO: data IOE (e :: Effects)
- Bluefin.Pipes: data () => Proxy a' a b' b (e :: Effects)
+ Bluefin.Pipes: data Proxy a' a b' b (e :: Effects)
- Bluefin.Reader: data () => Reader r (e :: Effects)
+ Bluefin.Reader: data Reader r (e :: Effects)
- Bluefin.State: data () => State s (e :: Effects)
+ Bluefin.State: data State s (e :: Effects)
- Bluefin.StateSource: data () => StateSource (e :: Effects)
+ Bluefin.StateSource: data StateSource (e :: Effects)
- Bluefin.StateSource: newState :: forall (e :: Effects) s (es :: Effects). StateSource e -> s -> Eff es (State s e)
+ Bluefin.StateSource: newState :: forall (e :: Effects) (es :: Effects) s. e :> es => StateSource e -> s -> Eff es (State s e)
- Bluefin.System.IO: data () => Handle (e :: Effects)
+ Bluefin.System.IO: data Handle (e :: Effects)
- Bluefin.Writer: data () => Writer w (e :: Effects)
+ Bluefin.Writer: data Writer w (e :: Effects)
Files
- CHANGELOG.md +4/−0
- bluefin.cabal +2/−2
- src/Bluefin.hs +9/−9
- src/Bluefin/IO.hs +1/−0
CHANGELOG.md view
@@ -1,3 +1,7 @@+## 0.0.16.0++* Export `runEff_` from `Bluefin.IO`+ ## 0.0.15.0 * Add `runEff_` to `Bluefin.Eff`
bluefin.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: bluefin-version: 0.0.15.0+version: 0.0.16.0 license: MIT license-file: LICENSE author: Tom Ellis@@ -39,6 +39,6 @@ Bluefin.System.IO, Bluefin.Writer, build-depends:- bluefin-internal >= 0.0.13.0 && < 0.1+ bluefin-internal >= 0.0.13.0 && < 0.2 hs-source-dirs: src default-language: Haskell2010
src/Bluefin.hs view
@@ -247,20 +247,20 @@ -- * Comparison to other effect systems - -- ** Everything except effectful+ -- ** Everything except @effectful@ -- | The design of Bluefin is strongly inspired by and based on- -- effectful. All the points in [effectful's comparison of itself+ -- @effectful@. All the points in [@effectful@'s comparison of itself -- to other effect -- systems](https://github.com/haskell-effectful/effectful?tab=readme-ov-file#motivation) -- apply to Bluefin too. - -- ** effectful+ -- ** @effectful@ - -- | The major difference between Bluefin and effectful is that in+ -- | The major difference between Bluefin and @effectful@ is that in -- Bluefin effects are represented as value-level handles whereas- -- in effectful they are represented only at the type level.- -- effectful could be described as "a well-typed implementation of+ -- in @effectful@ they are represented only at the type level.+ -- @effectful@ could be described as "a well-typed implementation of -- the @ReaderT@ @IO@ pattern", and Bluefin could be described as -- a well-typed implementation of something even simpler: the -- [Handle@@ -274,15 +274,15 @@ -- lines :( -- | "/Why not just implement Bluefin as an alternative API on/- -- /top of effectful?/"+ -- /top of @effectful@?/" -- -- It would be great to share code between the two projects! But -- I don't know to implement Bluefin's "Bluefin.Compound" effects- -- in effectful.+ -- in @effectful@. -- * Implementation - -- | Bluefin has a similar implementation style to effectful.+ -- | Bluefin has a similar implementation style to @effectful@. -- t'Bluefin.Eff.Eff' is an opaque wrapper around 'IO', -- t'Bluefin.State.State' is an opaque wrapper around -- 'Data.IORef.IORef', and 'Bluefin.Exception.throw' throws an
src/Bluefin/IO.hs view
@@ -4,6 +4,7 @@ -- * Handle IOE, -- * Handlers+ runEff_, runEff, -- * Effectful operations effIO,