1 import Control.Monad.Trans
2 import Control.Monad.State
3 import Control.Monad.Writer
8 type UserData = Maybe Place
10 dcb :: DayCallback UserData
15 liftIO $ putStrLn "No idea where to go, guessgin..."
16 room <- liftIO $ randomRIO (0,9)
19 liftIO $ putStrLn $ "Yay, I know where to go! (" ++ show room ++")"
25 ncb :: NightCallback UserData
26 ncb (NightEnds) = put Nothing
28 ncb (PartyHint room) = put (Just room)
30 ncb (GotScore score) = liftIO $ putStrLn $ "Got score: " ++ show score
36 runPartty "localhost" 1111 "me2" "passwd" dcb ncb Nothing