packages feed

distributed-process-client-server 0.1.2 → 0.1.3.1

raw patch · 2 files changed

+13/−13 lines, 2 filesdep ~deepseqdep ~timenew-uploaderPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: deepseq, time

API changes (from Hackage documentation)

- Control.Distributed.Process.ManagedProcess: apiHandlers :: ProcessDefinition s -> [Dispatcher s]
- Control.Distributed.Process.ManagedProcess: exitHandlers :: ProcessDefinition s -> [ExitSignalDispatcher s]
- Control.Distributed.Process.ManagedProcess: getPrio :: Priority a -> Int
- Control.Distributed.Process.ManagedProcess: infoHandlers :: ProcessDefinition s -> [DeferredDispatcher s]
- Control.Distributed.Process.ManagedProcess: priorities :: PrioritisedProcessDefinition s -> [DispatchPriority s]
- Control.Distributed.Process.ManagedProcess: processDef :: PrioritisedProcessDefinition s -> ProcessDefinition s
- Control.Distributed.Process.ManagedProcess: recvTimeout :: PrioritisedProcessDefinition s -> RecvTimeoutPolicy
- Control.Distributed.Process.ManagedProcess: shutdownHandler :: ProcessDefinition s -> ShutdownHandler s
- Control.Distributed.Process.ManagedProcess: timeoutHandler :: ProcessDefinition s -> TimeoutHandler s
- Control.Distributed.Process.ManagedProcess: unhandledMessagePolicy :: ProcessDefinition s -> UnhandledMessagePolicy
- Control.Distributed.Process.ManagedProcess.Server.Restricted: instance Applicative (RestrictedProcess s)
- Control.Distributed.Process.ManagedProcess.Server.Restricted: instance Functor (RestrictedProcess s)
- Control.Distributed.Process.ManagedProcess.Server.Restricted: instance Monad (RestrictedProcess s)
- Control.Distributed.Process.ManagedProcess.Server.Restricted: instance MonadIO (RestrictedProcess s)
- Control.Distributed.Process.ManagedProcess.Server.Restricted: instance MonadState s (RestrictedProcess s)
- Control.Distributed.Process.ManagedProcess.Server.Restricted: instance Typeable RestrictedProcess
- Control.Distributed.Process.ManagedProcess.Server.Restricted: instance Typeable Result
+ Control.Distributed.Process.ManagedProcess: [apiHandlers] :: ProcessDefinition s -> [Dispatcher s]
+ Control.Distributed.Process.ManagedProcess: [exitHandlers] :: ProcessDefinition s -> [ExitSignalDispatcher s]
+ Control.Distributed.Process.ManagedProcess: [getPrio] :: Priority a -> Int
+ Control.Distributed.Process.ManagedProcess: [infoHandlers] :: ProcessDefinition s -> [DeferredDispatcher s]
+ Control.Distributed.Process.ManagedProcess: [priorities] :: PrioritisedProcessDefinition s -> [DispatchPriority s]
+ Control.Distributed.Process.ManagedProcess: [processDef] :: PrioritisedProcessDefinition s -> ProcessDefinition s
+ Control.Distributed.Process.ManagedProcess: [recvTimeout] :: PrioritisedProcessDefinition s -> RecvTimeoutPolicy
+ Control.Distributed.Process.ManagedProcess: [shutdownHandler] :: ProcessDefinition s -> ShutdownHandler s
+ Control.Distributed.Process.ManagedProcess: [timeoutHandler] :: ProcessDefinition s -> TimeoutHandler s
+ Control.Distributed.Process.ManagedProcess: [unhandledMessagePolicy] :: ProcessDefinition s -> UnhandledMessagePolicy
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: instance Control.Monad.IO.Class.MonadIO (Control.Distributed.Process.ManagedProcess.Server.Restricted.RestrictedProcess s)
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: instance Control.Monad.State.Class.MonadState s (Control.Distributed.Process.ManagedProcess.Server.Restricted.RestrictedProcess s)
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: instance GHC.Base.Applicative (Control.Distributed.Process.ManagedProcess.Server.Restricted.RestrictedProcess s)
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: instance GHC.Base.Functor (Control.Distributed.Process.ManagedProcess.Server.Restricted.RestrictedProcess s)
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: instance GHC.Base.Monad (Control.Distributed.Process.ManagedProcess.Server.Restricted.RestrictedProcess s)
- Control.Distributed.Process.ManagedProcess: action :: Serializable a => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: action :: (Serializable a) => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: chanServe :: Serializable b => a -> InitHandler a s -> (ControlChannel b -> Process (ProcessDefinition s)) -> Process ()
+ Control.Distributed.Process.ManagedProcess: chanServe :: (Serializable b) => a -> InitHandler a s -> (ControlChannel b -> Process (ProcessDefinition s)) -> Process ()
- Control.Distributed.Process.ManagedProcess: channelControlPort :: Serializable m => ControlChannel m -> ControlPort m
+ Control.Distributed.Process.ManagedProcess: channelControlPort :: (Serializable m) => ControlChannel m -> ControlPort m
- Control.Distributed.Process.ManagedProcess: handleCast :: Serializable a => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: handleCast :: (Serializable a) => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: handleCastIf :: Serializable a => Condition s a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: handleCastIf :: (Serializable a) => Condition s a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: handleCastIf_ :: Serializable a => Condition s a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: handleCastIf_ :: (Serializable a) => Condition s a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: handleCast_ :: Serializable a => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: handleCast_ :: (Serializable a) => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: handleControlChan :: Serializable a => ControlChannel a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: handleControlChan :: (Serializable a) => ControlChannel a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: handleControlChan_ :: Serializable a => ControlChannel a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: handleControlChan_ :: (Serializable a) => ControlChannel a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: handleDispatch :: Serializable a => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess: handleDispatch :: (Serializable a) => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess: handleExit :: Serializable a => (s -> ProcessId -> a -> Process (ProcessAction s)) -> ExitSignalDispatcher s
+ Control.Distributed.Process.ManagedProcess: handleExit :: (Serializable a) => (s -> ProcessId -> a -> Process (ProcessAction s)) -> ExitSignalDispatcher s
- Control.Distributed.Process.ManagedProcess: handleInfo :: Serializable a => (s -> a -> Process (ProcessAction s)) -> DeferredDispatcher s
+ Control.Distributed.Process.ManagedProcess: handleInfo :: (Serializable a) => (s -> a -> Process (ProcessAction s)) -> DeferredDispatcher s
- Control.Distributed.Process.ManagedProcess: input :: Serializable m => (m -> Bool) -> Condition s m
+ Control.Distributed.Process.ManagedProcess: input :: (Serializable m) => (m -> Bool) -> Condition s m
- Control.Distributed.Process.ManagedProcess: newControlChan :: Serializable m => Process (ControlChannel m)
+ Control.Distributed.Process.ManagedProcess: newControlChan :: (Serializable m) => Process (ControlChannel m)
- Control.Distributed.Process.ManagedProcess: noReply :: Serializable r => ProcessAction s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess: noReply :: (Serializable r) => ProcessAction s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess: noReply_ :: Serializable r => s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess: noReply_ :: (Serializable r) => s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess: reply :: Serializable r => r -> s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess: reply :: (Serializable r) => r -> s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess: replyChan :: Serializable m => SendPort m -> m -> Process ()
+ Control.Distributed.Process.ManagedProcess: replyChan :: (Serializable m) => SendPort m -> m -> Process ()
- Control.Distributed.Process.ManagedProcess: replyTo :: Serializable m => CallRef m -> m -> Process ()
+ Control.Distributed.Process.ManagedProcess: replyTo :: (Serializable m) => CallRef m -> m -> Process ()
- Control.Distributed.Process.ManagedProcess: replyWith :: Serializable r => r -> ProcessAction s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess: replyWith :: (Serializable r) => r -> ProcessAction s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess: state :: Serializable m => (s -> Bool) -> Condition s m
+ Control.Distributed.Process.ManagedProcess: state :: (Serializable m) => (s -> Bool) -> Condition s m
- Control.Distributed.Process.ManagedProcess.Client: flushPendingCalls :: Serializable b => TimeInterval -> (b -> Process b) -> Process (Maybe b)
+ Control.Distributed.Process.ManagedProcess.Client: flushPendingCalls :: (Serializable b) => TimeInterval -> (b -> Process b) -> Process (Maybe b)
- Control.Distributed.Process.ManagedProcess.Server: action :: Serializable a => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: action :: (Serializable a) => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleCast :: Serializable a => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleCast :: (Serializable a) => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleCastIf :: Serializable a => Condition s a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleCastIf :: (Serializable a) => Condition s a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleCastIf_ :: Serializable a => Condition s a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleCastIf_ :: (Serializable a) => Condition s a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleCast_ :: Serializable a => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleCast_ :: (Serializable a) => (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleControlChan :: Serializable a => ControlChannel a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleControlChan :: (Serializable a) => ControlChannel a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleControlChan_ :: Serializable a => ControlChannel a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleControlChan_ :: (Serializable a) => ControlChannel a -> (a -> (s -> Process (ProcessAction s))) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleDispatch :: Serializable a => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleDispatch :: (Serializable a) => (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleDispatchIf :: Serializable a => Condition s a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleDispatchIf :: (Serializable a) => Condition s a -> (s -> a -> Process (ProcessAction s)) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleExit :: Serializable a => (s -> ProcessId -> a -> Process (ProcessAction s)) -> ExitSignalDispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleExit :: (Serializable a) => (s -> ProcessId -> a -> Process (ProcessAction s)) -> ExitSignalDispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleExitIf :: Serializable a => (s -> a -> Bool) -> (s -> ProcessId -> a -> Process (ProcessAction s)) -> ExitSignalDispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleExitIf :: (Serializable a) => (s -> a -> Bool) -> (s -> ProcessId -> a -> Process (ProcessAction s)) -> ExitSignalDispatcher s
- Control.Distributed.Process.ManagedProcess.Server: handleInfo :: Serializable a => (s -> a -> Process (ProcessAction s)) -> DeferredDispatcher s
+ Control.Distributed.Process.ManagedProcess.Server: handleInfo :: (Serializable a) => (s -> a -> Process (ProcessAction s)) -> DeferredDispatcher s
- Control.Distributed.Process.ManagedProcess.Server: input :: Serializable m => (m -> Bool) -> Condition s m
+ Control.Distributed.Process.ManagedProcess.Server: input :: (Serializable m) => (m -> Bool) -> Condition s m
- Control.Distributed.Process.ManagedProcess.Server: noReply :: Serializable r => ProcessAction s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess.Server: noReply :: (Serializable r) => ProcessAction s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess.Server: noReply_ :: Serializable r => s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess.Server: noReply_ :: (Serializable r) => s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess.Server: reply :: Serializable r => r -> s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess.Server: reply :: (Serializable r) => r -> s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess.Server: replyChan :: Serializable m => SendPort m -> m -> Process ()
+ Control.Distributed.Process.ManagedProcess.Server: replyChan :: (Serializable m) => SendPort m -> m -> Process ()
- Control.Distributed.Process.ManagedProcess.Server: replyTo :: Serializable m => CallRef m -> m -> Process ()
+ Control.Distributed.Process.ManagedProcess.Server: replyTo :: (Serializable m) => CallRef m -> m -> Process ()
- Control.Distributed.Process.ManagedProcess.Server: replyWith :: Serializable r => r -> ProcessAction s -> Process (ProcessReply r s)
+ Control.Distributed.Process.ManagedProcess.Server: replyWith :: (Serializable r) => r -> ProcessAction s -> Process (ProcessReply r s)
- Control.Distributed.Process.ManagedProcess.Server: state :: Serializable m => (s -> Bool) -> Condition s m
+ Control.Distributed.Process.ManagedProcess.Server: state :: (Serializable m) => (s -> Bool) -> Condition s m
- Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseCast :: Serializable a => (s -> a -> Priority ()) -> DispatchPriority s
+ Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseCast :: (Serializable a) => (s -> a -> Priority ()) -> DispatchPriority s
- Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseCast_ :: Serializable a => (a -> Priority ()) -> DispatchPriority s
+ Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseCast_ :: (Serializable a) => (a -> Priority ()) -> DispatchPriority s
- Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseInfo :: Serializable a => (s -> a -> Priority ()) -> DispatchPriority s
+ Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseInfo :: (Serializable a) => (s -> a -> Priority ()) -> DispatchPriority s
- Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseInfo_ :: Serializable a => (a -> Priority ()) -> DispatchPriority s
+ Control.Distributed.Process.ManagedProcess.Server.Priority: prioritiseInfo_ :: (Serializable a) => (a -> Priority ()) -> DispatchPriority s
- Control.Distributed.Process.ManagedProcess.Server.Restricted: haltNoReply :: Serializable r => ExitReason -> RestrictedProcess s (Result r)
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: haltNoReply :: (Serializable r) => ExitReason -> RestrictedProcess s (Result r)
- Control.Distributed.Process.ManagedProcess.Server.Restricted: handleCast :: Serializable a => (a -> RestrictedProcess s RestrictedAction) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: handleCast :: (Serializable a) => (a -> RestrictedProcess s RestrictedAction) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server.Restricted: handleCastIf :: Serializable a => Condition s a -> (a -> RestrictedProcess s RestrictedAction) -> Dispatcher s
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: handleCastIf :: (Serializable a) => Condition s a -> (a -> RestrictedProcess s RestrictedAction) -> Dispatcher s
- Control.Distributed.Process.ManagedProcess.Server.Restricted: handleExit :: Serializable a => (a -> RestrictedProcess s RestrictedAction) -> ExitSignalDispatcher s
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: handleExit :: (Serializable a) => (a -> RestrictedProcess s RestrictedAction) -> ExitSignalDispatcher s
- Control.Distributed.Process.ManagedProcess.Server.Restricted: handleInfo :: Serializable a => (a -> RestrictedProcess s RestrictedAction) -> DeferredDispatcher s
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: handleInfo :: (Serializable a) => (a -> RestrictedProcess s RestrictedAction) -> DeferredDispatcher s
- Control.Distributed.Process.ManagedProcess.Server.Restricted: noReply :: Serializable r => Result r -> RestrictedProcess s (Result r)
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: noReply :: (Serializable r) => Result r -> RestrictedProcess s (Result r)
- Control.Distributed.Process.ManagedProcess.Server.Restricted: reply :: Serializable r => r -> RestrictedProcess s (Result r)
+ Control.Distributed.Process.ManagedProcess.Server.Restricted: reply :: (Serializable r) => r -> RestrictedProcess s (Result r)
- Control.Distributed.Process.ManagedProcess.UnsafeClient: flushPendingCalls :: NFSerializable b => TimeInterval -> (b -> Process b) -> Process (Maybe b)
+ Control.Distributed.Process.ManagedProcess.UnsafeClient: flushPendingCalls :: (NFSerializable b) => TimeInterval -> (b -> Process b) -> Process (Maybe b)

Files

distributed-process-client-server.cabal view
@@ -1,5 +1,5 @@ name:           distributed-process-client-server-version:        0.1.2+version:        0.1.3.1 cabal-version:  >=1.8 build-type:     Simple license:        BSD3@@ -7,7 +7,7 @@ stability:      experimental Copyright:      Tim Watson 2012 - 2013 Author:         Tim Watson-Maintainer:     watson.timothy@gmail.com+Maintainer:     Facundo Domínguez <facundo.dominguez@tweag.io> Stability:      experimental Homepage:       http://github.com/haskell-distributed/distributed-process-client-server Bug-Reports:    http://github.com/haskell-distributed/distributed-process-client-server/issues@@ -24,10 +24,6 @@   type:      git   location:  https://github.com/haskell-distributed/distributed-process-client-server -flag perf-  description: Build with profiling enabled-  default: False- library   build-depends:                    base >= 4.4 && < 5,@@ -36,14 +32,14 @@                    distributed-process-extras >= 0.2.0 && < 0.3,                    distributed-process-async >= 0.2.1 && < 0.3,                    binary >= 0.6.3.0 && < 0.8,-                   deepseq >= 1.3.0.1 && < 1.4,+                   deepseq >= 1.3.0.1 && < 1.5,                    mtl,                    containers >= 0.4 && < 0.6,                    hashable >= 1.2.0.5 && < 1.3,                    unordered-containers >= 0.2.3.0 && < 0.3,                    fingertree < 0.2,                    stm >= 2.4 && < 2.5,-                   time > 1.4 && < 1.5,+                   time > 1.4 && < 1.6,                    transformers   if impl(ghc <= 7.5)     Build-Depends:   template-haskell == 2.7.0.0,@@ -81,7 +77,7 @@                    fingertree < 0.2,                    network-transport-tcp >= 0.4 && < 0.5,                    binary >= 0.6.3.0 && < 0.8,-                   deepseq >= 1.3.0.1 && < 1.4,+                   deepseq >= 1.3.0.1 && < 1.5,                    network >= 2.3 && < 2.7,                    HUnit >= 1.2 && < 2,                    stm >= 2.3 && < 2.5,@@ -113,7 +109,7 @@                    fingertree < 0.2,                    network-transport-tcp >= 0.4 && < 0.5,                    binary >= 0.6.3.0 && < 0.8,-                   deepseq >= 1.3.0.1 && < 1.4,+                   deepseq >= 1.3.0.1 && < 1.5,                    network >= 2.3 && < 2.7,                    HUnit >= 1.2 && < 2,                    stm >= 2.3 && < 2.5,
src/Control/Distributed/Process/ManagedProcess/Internal/Types.hs view
@@ -64,7 +64,7 @@   ( resolveOrDie   ) import Control.Distributed.Process.Extras.Time-import Control.DeepSeq (NFData)+import Control.DeepSeq (NFData(..)) import Data.Binary hiding (decode) import Data.Typeable (Typeable) @@ -81,7 +81,7 @@ newtype CallRef a = CallRef { unCaller :: (Recipient, CallId) }   deriving (Eq, Show, Typeable, Generic) instance Serializable a => Binary (CallRef a) where-instance NFData a => NFData (CallRef a) where+instance NFData a => NFData (CallRef a) where rnf (CallRef x) = rnf x `seq` ()  makeRef :: forall a . (Serializable a) => Recipient -> CallId -> CallRef a makeRef r c = CallRef (r, c)@@ -101,6 +101,9 @@  instance (Serializable a, Serializable b) => Binary (Message a b) where instance (NFSerializable a, NFSerializable b) => NFData (Message a b) where+  rnf (CastMessage a) = rnf a `seq` ()+  rnf (CallMessage a b) = rnf a `seq` rnf b `seq` ()+  rnf (ChanMessage a b) = rnf a `seq` rnf b `seq` () deriving instance (Eq a, Eq b) => Eq (Message a b) deriving instance (Show a, Show b) => Show (Message a b) @@ -108,7 +111,8 @@   deriving (Typeable, Generic)  instance Serializable a => Binary (CallResponse a)-instance NFSerializable a => NFData (CallResponse a)+instance NFSerializable a => NFData (CallResponse a) where+  rnf (CallResponse a c) = rnf a `seq` rnf c `seq` () deriving instance Eq a => Eq (CallResponse a) deriving instance Show a => Show (CallResponse a)