bluefin 0.4.0.0 → 0.4.0.1
raw patch · 5 files changed
+26/−2 lines, 5 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Bluefin.CloneableHandle: class () => Generic1 (f :: k -> Type)
+ Bluefin.CloneableHandle: class Generic1 (f :: k -> Type)
- Bluefin.CloneableHandle: newtype () => GenericCloneableHandle (h :: k -> Type) (e :: k)
+ Bluefin.CloneableHandle: newtype GenericCloneableHandle (h :: k -> Type) (e :: k)
- Bluefin.Compound: class () => Generic a
+ Bluefin.Compound: class Generic a
- Bluefin.Compound: class () => Handle (h :: Effects -> Type)
+ Bluefin.Compound: class Handle (h :: Effects -> Type)
- Bluefin.Compound: class () => OneWayCoercible (a :: k) (b :: k)
+ Bluefin.Compound: class OneWayCoercible (a :: k) (b :: k)
- 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.Compound: data () => HandleD (h :: Effects -> Type)
+ Bluefin.Compound: data HandleD (h :: Effects -> Type)
- Bluefin.Compound: newtype () => OneWayCoercibleHandle (a :: k -> Type) (es :: k)
+ Bluefin.Compound: newtype OneWayCoercibleHandle (a :: k -> Type) (es :: k)
- Bluefin.Coroutine: data () => Coroutine a b (e :: Effects)
+ Bluefin.Coroutine: data Coroutine a b (e :: Effects)
- Bluefin.DslBuilder: data () => DslBuilder (h :: Effects -> Type) r
+ Bluefin.DslBuilder: data DslBuilder (h :: Effects -> Type) r
- 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.Exception.GeneralBracket: data () => ( (h1 :: Effects -> Type) :~> (h2 :: Effects -> Type) ) (es :: Effects)
+ Bluefin.Exception.GeneralBracket: data ( (h1 :: Effects -> Type) :~> (h2 :: Effects -> Type) ) (es :: Effects)
- Bluefin.Exception.GeneralBracket: data () => MakeExceptions r a (h :: Effects -> Type) (es :: Effects)
+ Bluefin.Exception.GeneralBracket: data MakeExceptions r a (h :: Effects -> Type) (es :: 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.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 +1/−1
- src/Bluefin/Consume.hs +3/−0
- src/Bluefin/Coroutine.hs +15/−1
- src/Bluefin/Stream.hs +3/−0
CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.4.0.1++* Documentation only+ # 0.4.0.0 * Move `mapHandle` out of class `Handle` and remove `handleMapHandle`.
bluefin.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: bluefin-version: 0.4.0.0+version: 0.4.0.1 license: MIT license-file: LICENSE author: Tom Ellis
src/Bluefin/Consume.hs view
@@ -2,6 +2,9 @@ ( -- | 'Consume' allows you to await values during the execution of -- a Bluefin operation. It provides similar functionality to -- @await@ from Conduit or Pipes.+ --+ -- For information about prompt finalization/resource safety when+ -- using Bluefin @Consume@s, see "Bluefin.Coroutine". -- * Handle Consume,
src/Bluefin/Coroutine.hs view
@@ -3,9 +3,23 @@ -- [Wikipedia -- suggests](https://en.wikipedia.org/wiki/Coroutine#Definition_and_types) -- that Bluefin's coroutines are "second-class stackful- -- coroutines". This module is not documented yet. You might+ -- coroutines". This module is not documented much yet. You might -- want to start with "Bluefin.Stream", which is the most common -- way to use coroutines.++ -- ** Prompt finalization/resource safety++ -- | Bluefin+ -- 'Bluefin.Stream.Stream'\/'Bluefin.Consume.Consume'\/'Bluefin.Coroutine.Coroutine'+ -- computations have much better resource safety properties than+ -- Conduit and Pipes. You can use+ -- @Bluefin.Eff.'Bluefin.Eff.bracket'@ within a streaming+ -- computation and the acquired resource is guaranteed to be+ -- released and the end of the bracket, rather than at the end of+ -- the @ResourceT@ scope as it is the case in Conduit and Pipes.+ -- See the blog post [Bluefin streams finalize+ -- promptly](https://h2.jaguarpaw.co.uk/posts/bluefin-streams-finalize-promptly/)+ -- for more details. -- * Handle Coroutine,
src/Bluefin/Stream.hs view
@@ -5,6 +5,9 @@ -- handle each element as soon as it is yielded (for example -- 'forEach') or gather all yielded elements int o a list (for -- example 'yieldToList').+ --+ -- For information about prompt finalization/resource safety when+ -- using Bluefin @Stream@s, see "Bluefin.Coroutine". -- * Handle Stream,