diff -r 2c29b75746f3 -r 11cd56019f00 gameServer/RoomsAndClients.hs --- a/gameServer/RoomsAndClients.hs Mon May 10 15:31:09 2010 +0000 +++ b/gameServer/RoomsAndClients.hs Mon May 10 17:48:06 2010 +0000 @@ -16,6 +16,7 @@ clientRoom, clientRoomM, client, + clientsM, allClients, withRoomsAndClients, showRooms, @@ -135,6 +136,9 @@ clientRoomM :: MRoomsAndClients r c -> ClientIndex -> IO RoomIndex clientRoomM (MRoomsAndClients (_, clients)) (ClientIndex ci) = liftM clientRoom' (clients `readElem` ci) +clientsM :: MRoomsAndClients r c -> (c -> a) -> ClientIndex -> IO a +clientsM (MRoomsAndClients (_, clients)) f (ClientIndex ci) = liftM (f . client') (clients `readElem` ci) + withRoomsAndClients :: MRoomsAndClients r c -> (IRoomsAndClients r c -> a) -> IO a withRoomsAndClients (MRoomsAndClients (rooms, clients)) f =