module Control.Concurrent.Chan.Class where
import Control.Monad.IO.Unlift
import qualified UnliftIO.Chan as Chan
class ChanDup chan where
dupChan :: MonadIO m => chan a -> m (chan a)
instance ChanDup Chan.Chan where
dupChan = Chan.dupChan
class ChanWrite chan where
writeChan :: MonadIO m => chan a -> a -> m ()
writeList2Chan :: MonadIO m => chan a -> [a] -> m ()
instance ChanWrite Chan.Chan where
writeChan = Chan.writeChan
writeList2Chan = Chan.writeList2Chan
class ChanRead chan where
readChan :: MonadIO m => chan a -> m a
instance ChanRead Chan.Chan where
readChan = Chan.readChan