@@ -52,6 +52,7 @@ import Control.Distributed.Static
52import Control.Distributed.Process.Serializable
52import Control.Distributed.Process.Serializable
53 ( SerializableDict(..)
53 ( SerializableDict(..)
54 , Serializable
54 , Serializable
56import Control.Distributed.Process.Internal.Types
57import Control.Distributed.Process.Internal.Types
@@ -84,7 +85,8 @@ remoteTable =
84 . registerStatic "$sdictUnit" (toDynamic (SerializableDict :: SerializableDict ()))
85 . registerStatic "$sdictUnit" (toDynamic (SerializableDict :: SerializableDict ()))
85 . registerStatic "$sdictProcessId" (toDynamic (SerializableDict :: SerializableDict ProcessId))
86 . registerStatic "$sdictProcessId" (toDynamic (SerializableDict :: SerializableDict ProcessId))
86 . registerStatic "$sdictSendPort_" (toDynamic (sdictSendPort_ :: SerializableDict ANY -> SerializableDict (SendPort ANY)))
87 . registerStatic "$sdictSendPort_" (toDynamic (sdictSendPort_ :: SerializableDict ANY -> SerializableDict (SendPort ANY)))
88+ . registerStatic "$sdictStatic" (toDynamic (sdictStatic_ :: TypeableDict ANY -> SerializableDict (Static ANY)))
87− . registerStatic "$sdictClosure" (toDynamic (SerializableDict :: SerializableDict (Closure ANY)))
89+ . registerStatic "$sdictClosure" (toDynamic (sdictClosure_ :: TypeableDict ANY -> SerializableDict (Closure ANY)))
88 . registerStatic "$returnProcess" (toDynamic (return :: ANY -> Process ANY))
90 . registerStatic "$returnProcess" (toDynamic (return :: ANY -> Process ANY))
89 . registerStatic "$seqProcess" (toDynamic ((>>) :: Process ANY1 -> Process ANY2 -> Process ANY2))
91 . registerStatic "$seqProcess" (toDynamic ((>>) :: Process ANY1 -> Process ANY2 -> Process ANY2))
90 . registerStatic "$bindProcess" (toDynamic ((>>=) :: Process ANY1 -> (ANY1 -> Process ANY2) -> Process ANY2))
92 . registerStatic "$bindProcess" (toDynamic ((>>=) :: Process ANY1 -> (ANY1 -> Process ANY2) -> Process ANY2))
@@ -105,6 +107,12 @@ remoteTable =
105 sdictSendPort_ :: forall a. SerializableDict a -> SerializableDict (SendPort a)
107 sdictSendPort_ :: forall a. SerializableDict a -> SerializableDict (SendPort a)
106 sdictSendPort_ SerializableDict = SerializableDict
108 sdictSendPort_ SerializableDict = SerializableDict
110+ sdictStatic_ :: forall a. TypeableDict a -> SerializableDict (Static a)
111+ sdictStatic_ TypeableDict = SerializableDict
113+ sdictClosure_ :: forall a. TypeableDict a -> SerializableDict (Closure a)
114+ sdictClosure_ TypeableDict = SerializableDict
108 sendDict :: forall a. SerializableDict a -> ProcessId -> a -> Process ()
116 sendDict :: forall a. SerializableDict a -> ProcessId -> a -> Process ()
109 sendDict SerializableDict = send
117 sendDict SerializableDict = send
@@ -148,12 +156,12 @@ sdictSendPort :: Typeable a
148sdictSendPort = staticApply (staticLabel "$sdictSendPort_")
156sdictSendPort = staticApply (staticLabel "$sdictSendPort_")
150-- | Serialization dictionary for 'Static'.
158-- | Serialization dictionary for 'Static'.
151−sdictStatic :: Typeable a => Static (SerializableDict (Static a))
159+sdictStatic :: Typeable a => Static (TypeableDict a) -> Static (SerializableDict (Static a))
152−sdictStatic = staticLabel "$sdictStatic"
160+sdictStatic = staticApply (staticLabel "$sdictStatic")
154-- | Serialization dictionary for 'Closure'.
162-- | Serialization dictionary for 'Closure'.
155−sdictClosure :: Typeable a => Static (SerializableDict (Closure a))
163+sdictClosure :: Typeable a => Static (TypeableDict a) -> Static (SerializableDict (Closure a))
156−sdictClosure = staticLabel "$sdictClosure"
164+sdictClosure = staticApply (staticLabel "$sdictClosure")
158--------------------------------------------------------------------------------
166--------------------------------------------------------------------------------
159-- Static values --
167-- Static values --