{-# LANGUAGE ExplicitForAll #-}-- We export this stuff separately so we don't clutter up the -- API of the Graphics.Gloss module.-- | This game mode lets you manage your own input. Pressing ESC will still abort the program,-- but you don't get automatic pan and zoom controls like with `displayInWindow`.moduleGraphics.Gloss.Interface.Pure.Game(moduleGraphics.Gloss.Data.Display,moduleGraphics.Gloss.Data.Picture,moduleGraphics.Gloss.Data.Color,play,Event(..),Key(..),SpecialKey(..),MouseButton(..),KeyState(..),Modifiers(..))whereimportGraphics.Gloss.Data.DisplayimportGraphics.Gloss.Data.PictureimportGraphics.Gloss.Data.ColorimportGraphics.Gloss.Internals.Interface.GameimportGraphics.Gloss.Internals.Interface.Backend-- | Play a game in a window. play::forallworld.Display-- ^ Display mode.->Color-- ^ Background color.->Int-- ^ Number of simulation steps to take for each second of real time.->world-- ^ The initial world.->(world->Picture)-- ^ A function to convert the world a picture.->(Event->world->world)-- ^ A function to handle input events.->(Float->world->world)-- ^ A function to step the world one iteration.-- It is passed the period of time (in seconds) needing to be advanced.->IO()playdisplaybackColorsimResolutionworldStartworldToPictureworldHandleEventworldAdvance=playWithBackendIOdefaultBackendStatedisplaybackColorsimResolutionworldStart(return.worldToPicture)(\eventworld->return$worldHandleEventeventworld)(\timeworld->return$worldAdvancetimeworld)