-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Updatable timeouts as a Monad transformer
--
@package timeout-control
@version 0.2
-- | Add updatable timeout functionality to a Monad transformer
-- stack layered on IO
module System.Timeout.Control
-- | Run the timeout transformer
runTimeout :: (MonadBaseControl IO m, MonadIO m) => Microseconds -> Timeout m a -> m (Either TimeoutException a)
-- | Reset the timeout duration
updateTimeout :: MonadIO m => Microseconds -> Timeout m ()
data Timeout m a
data TimeoutException
-- | A timeout occurred
TimeoutException :: Unique -> TimeoutException
-- | The system event manager was unavailable
MissingSystemEventManagerException :: TimeoutException
-- | A duration measured in microseconds
newtype Microseconds
Microseconds :: Int -> Microseconds
instance Typeable TimeoutException
instance Num Microseconds
instance Show Microseconds
instance Eq TimeoutException
instance Applicative m => Applicative (Timeout m)
instance Functor m => Functor (Timeout m)
instance Monad m => Monad (Timeout m)
instance Monad m => MonadReader TimeoutState (Timeout m)
instance MonadIO m => MonadIO (Timeout m)
instance MonadTrans Timeout
instance MonadBaseControl b m => MonadBaseControl b (Timeout m)
instance MonadBase b m => MonadBase b (Timeout m)
instance MonadTransControl Timeout
instance Show TimeoutException
instance Exception TimeoutException