content: 
  -- | Display mode is for drawing a static picture.
  module Graphics.Gloss.Interface.IO.Interact
          ( module Graphics.Gloss.Data.Display
          , module Graphics.Gloss.Data.Picture
          , module Graphics.Gloss.Data.Color
          , interactIO
          , Controller    (..)
          , Event(..), Key(..), SpecialKey(..), MouseButton(..), KeyState(..), Modifiers(..))
  where
  import Graphics.Gloss.Data.Display
  import Graphics.Gloss.Data.Controller
  import Graphics.Gloss.Data.Picture
  import Graphics.Gloss.Data.Color
  import Graphics.Gloss.Internals.Interface.Event
  import Graphics.Gloss.Internals.Interface.Interact
  import Graphics.Gloss.Internals.Interface.Backend
  
  
  -- | Open a new window and interact with an infrequently updated picture.
  --
  --   Similar to `displayIO`, except that you manage your own events.
  --
  interactIO
          :: Display                      -- ^ Display mode.
          -> Color                        -- ^ Background color.
          -> world                        -- ^ Initial world state.
          -> (world -> IO Picture)        -- ^ A function to produce the current picture.
          -> (Event -> world -> IO world) -- ^ A function to handle input events.
          -> (Controller -> IO ())        -- ^ Callback to take the display controller.
          -> IO ()
  
  interactIO dis backColor worldInit makePicture handleEvent eatController
   =      interactWithBackend
                  defaultBackendState
                  dis
                  backColor
                  worldInit
                  makePicture
                  handleEvent
                  eatController
  