@@ -16,6 +16,8 @@ module Control.Monad.Class.MonadSTM.Strict
16
16
, StrictTVar
17
17
, labelTVar
18
18
, labelTVarIO
19
+ , traceTVar
20
+ , traceTVarIO
19
21
, castStrictTVar
20
22
, toLazyTVar
21
23
, fromLazyTVar
@@ -32,6 +34,8 @@ module Control.Monad.Class.MonadSTM.Strict
32
34
, StrictTMVar
33
35
, labelTMVar
34
36
, labelTMVarIO
37
+ , traceTMVar
38
+ , traceTMVarIO
35
39
, castStrictTMVar
36
40
, toLazyTMVar
37
41
, fromLazyTMVar
@@ -59,7 +63,8 @@ module Control.Monad.Class.MonadSTM.Strict
59
63
60
64
import Control.Monad.Class.MonadSTM as X hiding (LazyTMVar , LazyTVar ,
61
65
TMVar , TVar , isEmptyTMVar , labelTMVar , labelTMVarIO ,
62
- labelTVar , labelTVarIO , modifyTVar , newEmptyTMVar ,
66
+ traceTMVar , traceTMVarIO , labelTVar , labelTVarIO ,
67
+ traceTVar , traceTVarIO , modifyTVar , newEmptyTMVar ,
63
68
newEmptyTMVarIO , newEmptyTMVarM , newTMVar , newTMVarIO ,
64
69
newTMVarM , newTVar , newTVarIO , newTVarM , putTMVar ,
65
70
readTMVar , readTVar , readTVarIO , stateTVar , swapTMVar ,
@@ -97,6 +102,20 @@ labelTVar StrictTVar { tvar } = Lazy.labelTVar tvar
97
102
labelTVarIO :: MonadLabelledSTM m => StrictTVar m a -> String -> m ()
98
103
labelTVarIO v = atomically . labelTVar v
99
104
105
+ traceTVar :: MonadTraceSTM m
106
+ => proxy m
107
+ -> StrictTVar m a
108
+ -> (Maybe a -> a -> InspectMonad m TraceValue )
109
+ -> STM m ()
110
+ traceTVar p StrictTVar {tvar} = Lazy. traceTVar p tvar
111
+
112
+ traceTVarIO :: MonadTraceSTM m
113
+ => proxy m
114
+ -> StrictTVar m a
115
+ -> (Maybe a -> a -> InspectMonad m TraceValue )
116
+ -> m ()
117
+ traceTVarIO p StrictTVar {tvar} = Lazy. traceTVarIO p tvar
118
+
100
119
castStrictTVar :: LazyTVar m ~ LazyTVar n
101
120
=> StrictTVar m a -> StrictTVar n a
102
121
castStrictTVar v@ StrictTVar {tvar} =
@@ -198,6 +217,20 @@ labelTMVar (StrictTMVar tvar) = Lazy.labelTMVar tvar
198
217
labelTMVarIO :: MonadLabelledSTM m => StrictTMVar m a -> String -> m ()
199
218
labelTMVarIO v = atomically . labelTMVar v
200
219
220
+ traceTMVar :: MonadTraceSTM m
221
+ => proxy m
222
+ -> StrictTMVar m a
223
+ -> (Maybe (Maybe a ) -> (Maybe a ) -> InspectMonad m TraceValue )
224
+ -> STM m ()
225
+ traceTMVar p (StrictTMVar var) = Lazy. traceTMVar p var
226
+
227
+ traceTMVarIO :: MonadTraceSTM m
228
+ => proxy m
229
+ -> StrictTMVar m a
230
+ -> (Maybe (Maybe a ) -> (Maybe a ) -> InspectMonad m TraceValue )
231
+ -> m ()
232
+ traceTMVarIO p (StrictTMVar var) = Lazy. traceTMVarIO p var
233
+
201
234
castStrictTMVar :: LazyTMVar m ~ LazyTMVar n
202
235
=> StrictTMVar m a -> StrictTMVar n a
203
236
castStrictTMVar (StrictTMVar var) = StrictTMVar var
0 commit comments