    {-# LANGUAGE CPP #-}

    -- Import window managed backend specific modules.
    -- We need to use #ifdef here because if the backend library hasn't been installed
    -- then we won't be able to build it, so it can't be in the import list.
    module Graphics.Gloss.Internals.Interface.Backend
            ( module Graphics.Gloss.Internals.Interface.Backend.Types
    #ifdef WITHGLFW
            , module Graphics.Gloss.Internals.Interface.Backend.GLFW
    #endif
    #ifdef WITHGLUT
            , module Graphics.Gloss.Internals.Interface.Backend.GLUT
    #endif
            , defaultBackendState)
    where

    import Graphics.Gloss.Internals.Interface.Backend.Types

    #ifdef WITHGLFW
    import Graphics.Gloss.Internals.Interface.Backend.GLFW
    #endif
    #ifdef WITHGLUT
    import Graphics.Gloss.Internals.Interface.Backend.GLUT
    #endif

    #ifdef WITHGLUT
    defaultBackendState :: GLUTState
    #elif  WITHGLFW
    defaultBackendState :: GLFWState
    #else
    #error No default backend defined
    #endif
    defaultBackendState = initBackendState