module Control.Concurrent.STM.TMVar.Class where
import Control.Concurrent.STM (STM)
import qualified Control.Concurrent.STM.TMVar as TMVar
class TMVarWrite var where
putTMVar :: var a -> a -> STM ()
tryPutTMVar :: var a -> a -> STM Bool
instance TMVarWrite TMVar.TMVar where
putTMVar = TMVar.putTMVar
tryPutTMVar = TMVar.tryPutTMVar
class TMVarRead var where
takeTMVar :: var a -> STM a
readTMVar :: var a -> STM a
tryTakeTMVar :: var a -> STM (Maybe a)
instance TMVarRead TMVar.TMVar where
takeTMVar = TMVar.takeTMVar
readTMVar = TMVar.readTMVar
tryTakeTMVar = TMVar.tryTakeTMVar