@@ -26,6 +26,7 @@ import Control.Monad
2626import Control.Monad.Class.MonadAsync
2727import Control.Monad.Class.MonadEventlog
2828import Control.Monad.Class.MonadFork
29+ import Control.Monad.Class.MonadSay
2930import Control.Monad.Class.MonadST
3031import Control.Monad.Class.MonadSTM.Internal
3132import Control.Monad.Class.MonadThrow
@@ -302,6 +303,37 @@ instance MonadEventlog m => MonadEventlog (WithEarlyExit m) where
302303 traceEventIO = lift . traceEventIO
303304 traceMarkerIO = lift . traceMarkerIO
304305
306+ instance MonadLabelledSTM m => MonadLabelledSTM (WithEarlyExit m ) where
307+ labelTVar = lift .: labelTVar
308+ labelTMVar = lift .: labelTMVar
309+ labelTQueue = lift .: labelTQueue
310+ labelTBQueue = lift .: labelTBQueue
311+ labelTArray = lift .: labelTArray
312+ labelTSem = lift .: labelTSem
313+ labelTChan = lift .: labelTChan
314+ labelTVarIO = lift .: labelTVarIO
315+ labelTMVarIO = lift .: labelTMVarIO
316+ labelTQueueIO = lift .: labelTQueueIO
317+ labelTBQueueIO = lift .: labelTBQueueIO
318+ labelTArrayIO = lift .: labelTArrayIO
319+ labelTSemIO = lift .: labelTSemIO
320+ labelTChanIO = lift .: labelTChanIO
321+
322+ instance MonadSay m => MonadSay (WithEarlyExit m ) where
323+ say = lift . say
324+
325+ instance (MonadInspectSTM m , Monad (InspectMonad m )) => MonadInspectSTM (WithEarlyExit m ) where
326+ type InspectMonad (WithEarlyExit m ) = InspectMonad m
327+ inspectTVar _ = inspectTVar (Proxy @ m )
328+ inspectTMVar _ = inspectTMVar (Proxy @ m )
329+
330+ instance MonadTraceSTM m => MonadTraceSTM (WithEarlyExit m ) where
331+ traceTVar _ = lift .: traceTVar (Proxy @ m )
332+ traceTMVar _ = lift .: traceTMVar (Proxy @ m )
333+ traceTQueue _ = lift .: traceTQueue (Proxy @ m )
334+ traceTBQueue _ = lift .: traceTBQueue (Proxy @ m )
335+ traceTSem _ = lift .: traceTSem (Proxy @ m )
336+
305337{- ------------------------------------------------------------------------------
306338 Finally, the consensus IOLike wrapper
307339-------------------------------------------------------------------------------}
0 commit comments