Skip to content

Commit 3fb8a11

Browse files
iohk-bors[bot]coot
andauthored
Merge #3654
3654: io-classes: added strict versions of traceTVar & traceTMVar r=coot a=coot Co-authored-by: Marcin Szamotulski <[email protected]>
2 parents 8b5ea8d + f79c2d9 commit 3fb8a11

File tree

1 file changed

+34
-1
lines changed
  • strict-stm/src/Control/Monad/Class/MonadSTM

1 file changed

+34
-1
lines changed

strict-stm/src/Control/Monad/Class/MonadSTM/Strict.hs

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ module Control.Monad.Class.MonadSTM.Strict
1616
, StrictTVar
1717
, labelTVar
1818
, labelTVarIO
19+
, traceTVar
20+
, traceTVarIO
1921
, castStrictTVar
2022
, toLazyTVar
2123
, fromLazyTVar
@@ -32,6 +34,8 @@ module Control.Monad.Class.MonadSTM.Strict
3234
, StrictTMVar
3335
, labelTMVar
3436
, labelTMVarIO
37+
, traceTMVar
38+
, traceTMVarIO
3539
, castStrictTMVar
3640
, toLazyTMVar
3741
, fromLazyTMVar
@@ -59,7 +63,8 @@ module Control.Monad.Class.MonadSTM.Strict
5963

6064
import Control.Monad.Class.MonadSTM as X hiding (LazyTMVar, LazyTVar,
6165
TMVar, TVar, isEmptyTMVar, labelTMVar, labelTMVarIO,
62-
labelTVar, labelTVarIO, modifyTVar, newEmptyTMVar,
66+
traceTMVar, traceTMVarIO, labelTVar, labelTVarIO,
67+
traceTVar, traceTVarIO, modifyTVar, newEmptyTMVar,
6368
newEmptyTMVarIO, newEmptyTMVarM, newTMVar, newTMVarIO,
6469
newTMVarM, newTVar, newTVarIO, newTVarM, putTMVar,
6570
readTMVar, readTVar, readTVarIO, stateTVar, swapTMVar,
@@ -97,6 +102,20 @@ labelTVar StrictTVar { tvar } = Lazy.labelTVar tvar
97102
labelTVarIO :: MonadLabelledSTM m => StrictTVar m a -> String -> m ()
98103
labelTVarIO v = atomically . labelTVar v
99104

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+
100119
castStrictTVar :: LazyTVar m ~ LazyTVar n
101120
=> StrictTVar m a -> StrictTVar n a
102121
castStrictTVar v@StrictTVar {tvar} =
@@ -198,6 +217,20 @@ labelTMVar (StrictTMVar tvar) = Lazy.labelTMVar tvar
198217
labelTMVarIO :: MonadLabelledSTM m => StrictTMVar m a -> String -> m ()
199218
labelTMVarIO v = atomically . labelTMVar v
200219

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+
201234
castStrictTMVar :: LazyTMVar m ~ LazyTMVar n
202235
=> StrictTMVar m a -> StrictTMVar n a
203236
castStrictTMVar (StrictTMVar var) = StrictTMVar var

0 commit comments

Comments
 (0)