summaryrefslogtreecommitdiffstats
path: root/lib/Phi/Phi.hs
diff options
context:
space:
mode:
authorMatthias Schiffer <mschiffer@universe-factory.net>2011-07-15 09:17:57 +0200
committerMatthias Schiffer <mschiffer@universe-factory.net>2011-07-15 09:17:57 +0200
commit465d7579868b66d7076446744f1d80d2b272aca8 (patch)
tree61cefdcf7fc85e17c8ab2e7175478aa290ecf3fc /lib/Phi/Phi.hs
parentc6e57070ab4ca1fdaddf816208aef24f38aecaba (diff)
downloadphi-465d7579868b66d7076446744f1d80d2b272aca8.tar
phi-465d7579868b66d7076446744f1d80d2b272aca8.zip
Some more work on the taskbar
Diffstat (limited to 'lib/Phi/Phi.hs')
-rw-r--r--lib/Phi/Phi.hs18
1 files changed, 10 insertions, 8 deletions
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