{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE FlexibleInstances #-} -- | The instance of 'MonadTime' for IO, using the underlying system time and does -- This is to be used in production code, or in thoses tests where controling time -- is not needed. -- -- This is only and instance for IO, for instances for monad transformers see -- 'Control.Monad.Trans.SimulatedTime'. module Control.Monad.Time.DefaultInstance ( module Control.Monad.Time.DefaultInstance, module Control.Monad.Time) where import Control.Monad.Time import Control.Monad.Trans (liftIO) import Data.Time (getCurrentTime) import Control.Concurrent (threadDelay) instance {-# OVERLAPPING #-} MonadTime IO where getCurrentTime = liftIO Data.Time.getCurrentTime threadDelay delay = liftIO $ Control.Concurrent.threadDelay delay