bluefin 0.0.6.1 → 0.0.7.0
raw patch · 6 files changed
+74/−1 lines, 6 filesdep ~bluefin-internalPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bluefin-internal
API changes (from Hackage documentation)
+ Bluefin.Compound: useImplWithin :: forall (e :: Effects) (es :: Effects) t (e1 :: Effects) r. e :> es => (t -> Eff (e1 :& e) r) -> t -> Eff (e1 :& es) r
+ Bluefin.Coroutine: connectCoroutines :: forall (es :: Effects) a b r. (forall (e :: Effects). () => Coroutine a b e -> Eff (e :& es) r) -> (forall (e :: Effects). () => a -> Coroutine b a e -> Eff (e :& es) r) -> Eff es r
+ Bluefin.Pipes: (<-<) :: forall (e1 :: Effects) (es :: Effects) b c' c r a' a. e1 :> es => (forall (e :: Effects). () => Proxy () b c' c e -> Eff (e :& es) r) -> (forall (e :: Effects). () => Proxy a' a () b e -> Eff (e :& es) r) -> Proxy a' a c' c e1 -> Eff es r
+ Bluefin.Pipes: (<~) :: forall (e1 :: Effects) (es :: Effects) b x' x c' c b' a a'. e1 :> es => (b -> forall (e :: Effects). () => Proxy x' x c' c e -> Eff (e :& es) b') -> (a -> forall (e :: Effects). () => Proxy x' x b' b e -> Eff (e :& es) a') -> a -> Proxy x' x c' c e1 -> Eff es a'
+ Bluefin.Pipes: (>->) :: forall (e1 :: Effects) (es :: Effects) a' a b r c' c. e1 :> es => (forall (e :: Effects). () => Proxy a' a () b e -> Eff (e :& es) r) -> (forall (e :: Effects). () => Proxy () b c' c e -> Eff (e :& es) r) -> Proxy a' a c' c e1 -> Eff es r
+ Bluefin.Pipes: (>~) :: forall (e1 :: Effects) (es :: Effects) a' a y' y b c. e1 :> es => (forall (e :: Effects). () => Proxy a' a y' y e -> Eff (e :& es) b) -> (forall (e :: Effects). () => Proxy () b y' y e -> Eff (e :& es) c) -> Proxy a' a y' y e1 -> Eff es c
+ Bluefin.Pipes: (~<) :: forall (e1 :: Effects) (es :: Effects) b y' y c a' a. e1 :> es => (forall (e :: Effects). () => Proxy () b y' y e -> Eff (e :& es) c) -> (forall (e :: Effects). () => Proxy a' a y' y e -> Eff (e :& es) b) -> Proxy a' a y' y e1 -> Eff es c
+ Bluefin.Pipes: (~>) :: forall (e1 :: Effects) (es :: Effects) a x' x b' b a' c' c. e1 :> es => (a -> forall (e :: Effects). () => Proxy x' x b' b e -> Eff (e :& es) a') -> (b -> forall (e :: Effects). () => Proxy x' x c' c e -> Eff (e :& es) b') -> a -> Proxy x' x c' c e1 -> Eff es a'
+ Bluefin.Pipes: await :: forall (e :: Effects) (es :: Effects) a y' y. e :> es => Proxy () a y' y e -> Eff es a
+ Bluefin.Pipes: cat :: forall a (e :: Effects) (es :: Effects) r. Pipe a a e -> Eff (e :& es) r
+ Bluefin.Pipes: data () => Proxy a' a b' b (e :: Effects)
+ Bluefin.Pipes: each :: forall f a x' x (e :: Effects) (es :: Effects). Foldable f => f a -> Proxy x' x () a e -> Eff (e :& es) ()
+ Bluefin.Pipes: for :: forall (e1 :: Effects) (es :: Effects) x' x b' b a' c' c. e1 :> es => (forall (e :: Effects). () => Proxy x' x b' b e -> Eff (e :& es) a') -> (b -> forall (e :: Effects). () => Proxy x' x c' c e -> Eff (e :& es) b') -> Proxy x' x c' c e1 -> Eff es a'
+ Bluefin.Pipes: infixl 4 <~
+ Bluefin.Pipes: infixl 5 >~
+ Bluefin.Pipes: infixl 7 >->
+ Bluefin.Pipes: infixr 4 ~>
+ Bluefin.Pipes: infixr 5 ~<
+ Bluefin.Pipes: infixr 7 <-<
+ Bluefin.Pipes: next :: ()
+ Bluefin.Pipes: runEffect :: forall (es :: Effects) r. (forall (e :: Effects). () => Effect e -> Eff (e :& es) r) -> Eff es r
+ Bluefin.Pipes: type Consumer a = Pipe a Void
+ Bluefin.Pipes: type Effect = Producer Void
+ Bluefin.Pipes: type Pipe a = Proxy () a ()
+ Bluefin.Pipes: type Producer = Proxy Void () ()
+ Bluefin.Pipes: yield :: forall (e :: Effects) (es :: Effects) x1 x a. e :> es => Proxy x1 x () a e -> a -> Eff es ()
+ Bluefin.Pipes.Prelude: drain :: forall (e :: Effects) (es :: Effects) b c' c r. e :> es => Proxy () b c' c e -> Eff es r
+ Bluefin.Pipes.Prelude: map :: forall (e :: Effects) (es :: Effects) a b r. e :> es => (a -> b) -> Pipe a b e -> Eff es r
+ Bluefin.Pipes.Prelude: mapM :: forall (e :: Effects) (es :: Effects) a b r. e :> es => (a -> Eff es b) -> Pipe a b e -> Eff es r
+ Bluefin.Pipes.Prelude: mapM_ :: forall (e :: Effects) (es :: Effects) a b b' r. e :> es => (a -> Eff es ()) -> Proxy () a b b' e -> Eff es r
+ Bluefin.Pipes.Prelude: print :: forall (e2 :: Effects) (es :: Effects) (e1 :: Effects) a r. (e2 :> es, e1 :> es, Show a) => IOE e1 -> Consumer a e2 -> Eff es r
+ Bluefin.Pipes.Prelude: repeatM :: forall (e :: Effects) (es :: Effects) a x' x r. e :> es => Eff es a -> Proxy x' x () a e -> Eff es r
+ Bluefin.Pipes.Prelude: replicateM :: forall (e :: Effects) (es :: Effects) a x' x. e :> es => Int -> Eff es a -> Proxy x' x () a e -> Eff es ()
+ Bluefin.Pipes.Prelude: stdinLn :: forall (e1 :: Effects) (es :: Effects) (e2 :: Effects) r. (e1 :> es, e2 :> es) => IOE e1 -> Producer String e2 -> Eff es r
+ Bluefin.Pipes.Prelude: stdoutLn :: forall (e1 :: Effects) (es :: Effects) (e2 :: Effects) r. (e1 :> es, e2 :> es) => IOE e1 -> Consumer String e2 -> Eff es r
+ Bluefin.Pipes.Prelude: takeWhile' :: forall (e :: Effects) (es :: Effects) r. e :> es => (r -> Bool) -> Pipe r r e -> Eff es r
+ Bluefin.Pipes.Prelude: unfoldr :: forall (e :: Effects) (es :: Effects) s r a x1 x. e :> es => (s -> Eff es (Either r (a, s))) -> s -> Proxy x1 x () a e -> Eff es r
Files
- CHANGELOG.md +5/−0
- bluefin.cabal +3/−1
- src/Bluefin/Compound.hs +1/−0
- src/Bluefin/Coroutine.hs +1/−0
- src/Bluefin/Pipes.hs +30/−0
- src/Bluefin/Pipes/Prelude.hs +34/−0
CHANGELOG.md view
@@ -1,3 +1,8 @@+## 0.0.7.0++Add `Bluefin.Pipes` and `Bluefin.Pipes.Prelude`, `connectCoroutines`+and `useImplWithin`+ ## 0.0.6.1 * Documentation improvements
bluefin.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.0 name: bluefin-version: 0.0.6.1+version: 0.0.7.0 license: MIT license-file: LICENSE author: Tom Ellis@@ -28,6 +28,8 @@ Bluefin.Exception, Bluefin.IO, Bluefin.Jump,+ Bluefin.Pipes,+ Bluefin.Pipes.Prelude, Bluefin.Reader, Bluefin.State, Bluefin.StateSource,
src/Bluefin/Compound.hs view
@@ -458,6 +458,7 @@ Handle (mapHandle), useImpl, useImplIn,+ useImplWithin, -- * Deprecated
src/Bluefin/Coroutine.hs view
@@ -12,6 +12,7 @@ -- * Handlers forEach,+ connectCoroutines, -- * Effectful operations yieldCoroutine,
+ src/Bluefin/Pipes.hs view
@@ -0,0 +1,30 @@+-- | Reimplementation of the pipes ("Pipes") ecosystem in Bluefin.+-- See also "Bluefin.Pipes.Prelude".+module Bluefin.Pipes+ ( -- * The Proxy handle+ Proxy,+ Effect,+ runEffect,+ -- ** Producers+ Producer,+ yield,+ for,+ (~>),+ (<~),+ -- ** Consumers+ Consumer,+ await,+ (>~),+ (~<),+ -- ** Pipes+ Pipe,+ cat,+ (>->),+ (<-<),+ -- * Utilities+ next,+ each,+ )+where++import Bluefin.Internal.Pipes
+ src/Bluefin/Pipes/Prelude.hs view
@@ -0,0 +1,34 @@+-- | Reimplementation of the @pipes@ prelude ("Pipes.Prelude") in+-- Bluefin. See also "Bluefin.Pipes".+--+-- @+-- >>> 'Bluefin.Eff.runEff' $ \\io -> 'runEffect' $ do+-- 'stdinLn' io >-> 'takeWhile'' (/= "quit") >-> 'stdoutLn' io+-- Test+-- Test+-- ABC+-- ABC+-- quit+-- "quit"+-- @+module Bluefin.Pipes.Prelude+ ( -- * Producers+ stdinLn,+ repeatM,+ replicateM,+ unfoldr,++ -- * Consumers+ stdoutLn,+ mapM_,+ print,+ drain,++ -- * Pipes+ map,+ mapM,+ takeWhile',+ )+where++import Bluefin.Internal.Pipes