From 465d7579868b66d7076446744f1d80d2b272aca8 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Fri, 15 Jul 2011 09:17:57 +0200 Subject: Some more work on the taskbar --- lib/Phi/Phi.hs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'lib/Phi/Phi.hs') diff --git a/lib/Phi/Phi.hs b/lib/Phi/Phi.hs index b517de6..3f4b59b 100644 --- a/lib/Phi/Phi.hs +++ b/lib/Phi/Phi.hs @@ -12,6 +12,8 @@ module Phi.Phi ( Phi import Control.Concurrent.Chan import Control.Monad +import Control.Monad.IO.Class + import Data.Typeable data Phi = Phi (Chan Message) @@ -24,14 +26,14 @@ data DefaultMessage = Repaint deriving (Typeable, Show) fromMessage :: (Typeable a, Show a) => Message -> Maybe a fromMessage (Message m) = cast m -initPhi :: IO Phi -initPhi = liftM Phi newChan +initPhi :: MonadIO m => m Phi +initPhi = liftM Phi $ liftIO newChan -dupPhi :: Phi -> IO Phi -dupPhi (Phi chan) = liftM Phi $ dupChan chan +dupPhi :: MonadIO m => Phi -> m Phi +dupPhi (Phi chan) = liftM Phi $ liftIO $ dupChan chan -sendMessage :: (Typeable a, Show a) => Phi -> a -> IO () -sendMessage (Phi chan) = writeChan chan . Message +sendMessage :: (MonadIO m, Typeable a, Show a) => Phi -> a -> m () +sendMessage (Phi chan) = liftIO . writeChan chan . Message -receiveMessage :: Phi -> IO Message -receiveMessage (Phi chan) = readChan chan +receiveMessage :: MonadIO m => Phi -> m Message +receiveMessage (Phi chan) = liftIO $ readChan chan -- cgit v1.2.3