module Graphics.Gloss.Interface.Pure.Game
 	( module Graphics.Gloss.Data.Display
        , module Graphics.Gloss.Data.Picture
	, module Graphics.Gloss.Data.Color
	, play
	, Event(..), Key(..), SpecialKey(..), MouseButton(..), KeyState(..), Modifiers(..))
where
import Graphics.Gloss.Data.Display
import Graphics.Gloss.Data.Picture
import Graphics.Gloss.Data.Color
import Graphics.Gloss.Internals.Interface.Game
import Graphics.Gloss.Internals.Interface.Backend
play    :: forall world
        .  Display                      
        -> Color                        
        -> Int                          
        -> world                        
        -> (world -> Picture)           
        -> (Event -> world -> world)    
        -> (Float -> world -> world)    
                                        
        -> IO ()
play    display backColor simResolution
        worldStart worldToPicture worldHandleEvent worldAdvance
 = playWithBackendIO defaultBackendState 
        display backColor simResolution
        worldStart 
        (return . worldToPicture)
        (\event world -> return $ worldHandleEvent event world)
        (\time  world -> return $ worldAdvance     time  world)