opensoundcontrol-ht-0.1: src/Sound/OpenSoundControl/Transport/Monad/IO.hs
{- |
Run a generic Transport monad action in the IO monad
using the IO transport types, e.g. TCP, UDP, or File.
-}
module Sound.OpenSoundControl.Transport.Monad.IO
(T, Transport, send, recv, wait, waitFor, with, ) where
import qualified Sound.OpenSoundControl.Transport as Trans
import Sound.OpenSoundControl.Transport.Monad (C, send, recv, wait, waitFor, )
import Sound.OpenSoundControl.Transport (Transport)
import Control.Monad.Trans.Reader (ReaderT(runReaderT))
type T t = ReaderT t IO
-- | Bracket Open Sound Control communication.
with :: Transport t => IO t -> T t a -> IO a
with u = Trans.withTransport u . runReaderT