polysemy-socket 0.0.1.0 → 0.0.2.0
raw patch · 3 files changed
+24/−22 lines, 3 filesdep −polysemy-pluginPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependencies removed: polysemy-plugin
API changes (from Hackage documentation)
- Polysemy.Socket: accept :: forall s_adcb k_adcc b_adcd c_adce r_adAi. MemberWithError (Socket s_adcb k_adcc b_adcd c_adce) r_adAi => s_adcb -> Sem r_adAi (s_adcb, k_adcc)
+ Polysemy.Socket: accept :: forall s_a6Z8 k_a6Z9 b_a6Za c_a6Zb r_a7nf. MemberWithError (Socket s_a6Z8 k_a6Z9 b_a6Za c_a6Zb) r_a7nf => s_a6Z8 -> Sem r_a7nf (s_a6Z8, k_a6Z9)
- Polysemy.Socket: acquire :: forall s_adbR k_adbS b_adbT c_adbU r_adAa. MemberWithError (Socket s_adbR k_adbS b_adbT c_adbU) r_adAa => Sem r_adAa s_adbR
+ Polysemy.Socket: acquire :: forall s_a6YO k_a6YP b_a6YQ c_a6YR r_a7n7. MemberWithError (Socket s_a6YO k_a6YP b_a6YQ c_a6YR) r_a7n7 => Sem r_a7n7 s_a6YO
- Polysemy.Socket: adaptSocketSem :: Members '[Socket s k b' c'] r => (b' -> Sem r b) -> (c -> Sem r c') -> Sem (Socket s k b c : r) a -> Sem r a
+ Polysemy.Socket: adaptSocketSem :: forall s k b c b' c' r a. Members '[Socket s k b' c'] r => (b' -> Sem r b) -> (c -> Sem r c') -> Sem (Socket s k b c : r) a -> Sem r a
- Polysemy.Socket: bind :: forall s_adbW k_adbX b_adbY c_adbZ r_adAb. MemberWithError (Socket s_adbW k_adbX b_adbY c_adbZ) r_adAb => s_adbW -> Sem r_adAb ()
+ Polysemy.Socket: bind :: forall s_a6YT k_a6YU b_a6YV c_a6YW r_a7n8. MemberWithError (Socket s_a6YT k_a6YU b_a6YV c_a6YW) r_a7n8 => s_a6YT -> Sem r_a7n8 ()
- Polysemy.Socket: close :: forall s_adcq k_adcr b_adcs c_adct r_adAp. MemberWithError (Socket s_adcq k_adcr b_adcs c_adct) r_adAp => s_adcq -> Sem r_adAp ()
+ Polysemy.Socket: close :: forall s_a6Zn k_a6Zo b_a6Zp c_a6Zq r_a7nm. MemberWithError (Socket s_a6Zn k_a6Zo b_a6Zp c_a6Zq) r_a7nm => s_a6Zn -> Sem r_a7nm ()
- Polysemy.Socket: listen :: forall s_adc6 k_adc7 b_adc8 c_adc9 r_adAf. MemberWithError (Socket s_adc6 k_adc7 b_adc8 c_adc9) r_adAf => s_adc6 -> Int -> Sem r_adAf ()
+ Polysemy.Socket: listen :: forall s_a6Z3 k_a6Z4 b_a6Z5 c_a6Z6 r_a7nc. MemberWithError (Socket s_a6Z3 k_a6Z4 b_a6Z5 c_a6Z6) r_a7nc => s_a6Z3 -> Int -> Sem r_a7nc ()
- Polysemy.Socket: receive :: forall s_adcl k_adcm b_adcn c_adco r_adAn. MemberWithError (Socket s_adcl k_adcm b_adcn c_adco) r_adAn => s_adcl -> Sem r_adAn b_adcn
+ Polysemy.Socket: receive :: forall s_a6Zi k_a6Zj b_a6Zk c_a6Zl r_a7nk. MemberWithError (Socket s_a6Zi k_a6Zj b_a6Zk c_a6Zl) r_a7nk => s_a6Zi -> Sem r_a7nk b_a6Zk
- Polysemy.Socket: release :: forall s_adc1 k_adc2 b_adc3 c_adc4 r_adAd. MemberWithError (Socket s_adc1 k_adc2 b_adc3 c_adc4) r_adAd => s_adc1 -> Sem r_adAd ()
+ Polysemy.Socket: release :: forall s_a6YY k_a6YZ b_a6Z0 c_a6Z1 r_a7na. MemberWithError (Socket s_a6YY k_a6YZ b_a6Z0 c_a6Z1) r_a7na => s_a6YY -> Sem r_a7na ()
- Polysemy.Socket: send :: forall s_adcg k_adci b_adcj c_adch r_adAk. MemberWithError (Socket s_adcg k_adci b_adcj c_adch) r_adAk => s_adcg -> c_adch -> Sem r_adAk ()
+ Polysemy.Socket: send :: forall s_a6Zd k_a6Zf b_a6Zg c_a6Ze r_a7nh. MemberWithError (Socket s_a6Zd k_a6Zf b_a6Zg c_a6Ze) r_a7nh => s_a6Zd -> c_a6Ze -> Sem r_a7nh ()
Files
- ChangeLog.md +5/−1
- polysemy-socket.cabal +1/−2
- src/Polysemy/Socket.hs +18/−19
ChangeLog.md view
@@ -1,5 +1,9 @@ # Changelog for polysemy-socket +## v0.0.2.0++* Remove dependency on polysemy-plugin.+ ## v0.0.1.0 -Added `Socket` effect with some interpreters.+* Added `Socket` effect with some interpreters.
polysemy-socket.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: polysemy-socket-version: 0.0.1.0+version: 0.0.2.0 synopsis: Socket effect for polysemy. category: Polysemy author: Daniel Firth@@ -34,6 +34,5 @@ base >=4.7 && <5 , bytestring >=0.9 && <0.12 , polysemy >=1.3.0.0 && <1.7- , polysemy-plugin >=0.3.0.0 && <0.5 , socket >=0.5.0.0 && <0.9 default-language: Haskell2010
src/Polysemy/Socket.hs view
@@ -9,7 +9,6 @@ {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-}-{-# OPTIONS_GHC -fplugin=Polysemy.Plugin #-} -- | -- Module : Polysemy.Socket@@ -74,15 +73,15 @@ -- -- @since 0.0.1.0 traceSocket :: forall s k b c r a. Members '[Socket s k b c, Trace] r => Sem r a -> Sem r a-traceSocket = intercept $ \case- Acquire -> trace "acquring" >> acquire- Bind s -> trace "binding" >> bind s- Listen s x -> trace "listening" >> listen s x- Receive s -> trace "receiving" >> receive s- Send s x -> trace "sending" >> send s x- Release s -> trace "releasing" >> release s- Accept s -> trace "accept" >> accept s- Close s -> trace "closing" >> close s+traceSocket = intercept @(Socket s k b c) $ \case+ Acquire -> trace "acquring" >> acquire @s @k @b @c+ Bind s -> trace "binding" >> bind @s @k @b @c s+ Listen s x -> trace "listening" >> listen @s @k @b @c s x+ Receive s -> trace "receiving" >> receive @s @k @b @c s+ Send s x -> trace "sending" >> send @s @k @b @c s x+ Release s -> trace "releasing" >> release @s @k @b @c s+ Accept s -> trace "accept" >> accept @s @k @b @c s+ Close s -> trace "closing" >> close @s @k @b @c s {-# INLINE traceSocket #-} -- |@@ -95,16 +94,16 @@ -- | -- -- @since 0.0.1.0-adaptSocketSem :: Members '[Socket s k b' c'] r => (b' -> Sem r b) -> (c -> Sem r c') -> Sem (Socket s k b c ': r) a -> Sem r a+adaptSocketSem :: forall s k b c b' c' r a. Members '[Socket s k b' c'] r => (b' -> Sem r b) -> (c -> Sem r c') -> Sem (Socket s k b c ': r) a -> Sem r a adaptSocketSem f g = interpret $ \case- Acquire -> acquire- Bind s -> bind s- Release s -> release s- Listen s x -> listen s x- Accept s -> accept s- Send s c -> g c >>= send s- Receive s -> receive s >>= f- Close s -> close s+ Acquire -> acquire @s @k @b' @c'+ Bind s -> bind @s @k @b' @c' s+ Release s -> release @s @k @b' @c' s+ Listen s x -> listen @s @k @b' @c' s x+ Accept s -> accept @s @k @b' @c' s+ Send s c -> g c >>= send @s @k @b' @c' s+ Receive s -> receive @s @k @b' @c' s >>= f+ Close s -> close @s @k @b' @c' s {-# INLINE adaptSocketSem #-} -- |