module Control.Concurrent.STM.TMVar.WriteOnly ( WriteOnlyTMVar , ofTMVar , putTMVar , tryPutTMVar , isEmptyTMVar ) where import Control.Concurrent.STM (STM) import qualified Control.Concurrent.STM.TMVar as TMVar import Control.Concurrent.STM.TMVar (TMVar) newtype WriteOnlyTMVar a = WriteOnlyTMVar (TMVar a) deriving Eq ofTMVar :: TMVar a -> WriteOnlyTMVar a ofTMVar = WriteOnlyTMVar putTMVar :: WriteOnlyTMVar a -> a -> STM () putTMVar (WriteOnlyTMVar var) = TMVar.putTMVar var tryPutTMVar :: WriteOnlyTMVar a -> a -> STM Bool tryPutTMVar (WriteOnlyTMVar var) = TMVar.tryPutTMVar var isEmptyTMVar :: (WriteOnlyTMVar a) -> STM Bool isEmptyTMVar (WriteOnlyTMVar var) = TMVar.isEmptyTMVar var