-- 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