module Internal (STM, atomically, (.:), MonadIO(..)) where import Control.Monad.IO.Class import Control.Concurrent.STM (STM) import qualified Control.Concurrent.STM as STM (.:) :: (a -> b) -> (c -> d -> a) -> (c -> d -> b) (.:) = (.) . (.) infixl 8 .: atomically :: MonadIO m => STM a -> m a atomically = liftIO . STM.atomically