packages feed

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 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 #-}  -- |