-- | MonadIO lifted forms of Sound.Osc.Time.Thread functions
module Sound.Osc.Time.Thread.MonadIO where

import Control.Monad.IO.Class {- base >= 4.9 -}

import Sound.Osc.Time {- hosc -}
import Sound.Osc.Time.Thread {- hosc -}

time :: MonadIO m => m NtpReal
time :: forall (m :: * -> *). MonadIO m => m NtpReal
time = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO IO NtpReal
currentTime

pauseThread :: (MonadIO m,RealFrac n) => n -> m ()
pauseThread :: forall (m :: * -> *) n. (MonadIO m, RealFrac n) => n -> m ()
pauseThread = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall n. RealFrac n => n -> IO ()
pauseThreadFor

wait :: MonadIO m => Double -> m ()
wait :: forall (m :: * -> *). MonadIO m => NtpReal -> m ()
wait = forall (m :: * -> *) n. (MonadIO m, RealFrac n) => n -> m ()
pauseThread

pauseThreadUntil :: (MonadIO m,RealFrac n) => n -> m ()
pauseThreadUntil :: forall (m :: * -> *) n. (MonadIO m, RealFrac n) => n -> m ()
pauseThreadUntil = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall n. RealFrac n => n -> IO ()
pauseThreadUntilTime

sleepThread :: (RealFrac n, MonadIO m) => n -> m ()
sleepThread :: forall n (m :: * -> *). (RealFrac n, MonadIO m) => n -> m ()
sleepThread = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall n. RealFrac n => n -> IO ()
sleepThreadFor

sleepThreadUntil :: (RealFrac n, MonadIO m) => n -> m ()
sleepThreadUntil :: forall n (m :: * -> *). (RealFrac n, MonadIO m) => n -> m ()
sleepThreadUntil = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall n. RealFrac n => n -> IO ()
sleepThreadUntilTime