diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+2.7.0.5
+--------
+* Make things work with both old and new `OpenGLRaw`/`GLURaw` packages.
+* Build all examples via cabal, no need for `make` anymore.
+
 2.7.0.4
 --------
 * Relaxed upper version bound for `transformers`.
diff --git a/GLUT.cabal b/GLUT.cabal
--- a/GLUT.cabal
+++ b/GLUT.cabal
@@ -1,5 +1,5 @@
 name: GLUT
-version: 2.7.0.4
+version: 2.7.0.5
 synopsis: A binding for the OpenGL Utility Toolkit
 description:
   A Haskell binding for the OpenGL Utility Toolkit, a window system independent
@@ -8,7 +8,7 @@
   <http://www.opengl.org/resources/libraries/glut/>.
 homepage: http://www.haskell.org/haskellwiki/Opengl
 bug-reports: https://github.com/haskell-opengl/GLUT/issues
-copyright: Copyright (C) 2002-2015 Sven Panne
+copyright: Copyright (C) 2002-2016 Sven Panne
 license: BSD3
 license-file: LICENSE
 author: Sven Panne
@@ -21,129 +21,28 @@
    README.md
    examples/00-README
    examples/BOGLGP/00-README
-   examples/BOGLGP/Chapter01/Makefile
-   examples/BOGLGP/Chapter01/OnYourOwn1.hs
-   examples/BOGLGP/Chapter01/Simple.hs
-   examples/BOGLGP/Chapter02/Makefile
-   examples/BOGLGP/Chapter02/OnYourOwn1.hs
-   examples/BOGLGP/Chapter02/OpenGLApplication.hs
-   examples/BOGLGP/Chapter03/Lines.hs
-   examples/BOGLGP/Chapter03/Makefile
-   examples/BOGLGP/Chapter03/OnYourOwn1.hs
-   examples/BOGLGP/Chapter03/Points.hs
-   examples/BOGLGP/Chapter03/Polygons.hs
-   examples/BOGLGP/Chapter03/TrianglesQuads.hs
-   examples/BOGLGP/Makefile
-   examples/Makefile
    examples/Misc/00-README
-   examples/Misc/ARBOcclude.hs
-   examples/Misc/ColorTriangle/ColorTriangle.hs
-   examples/Misc/ColorTriangle/Makefile
    examples/Misc/ColorTriangle/color_triangles.frag
    examples/Misc/ColorTriangle/color_triangles.vert
-   examples/Misc/ExtractContours.hs
-   examples/Misc/Gears.hs
-   examples/Misc/Makefile
-   examples/Misc/Pitfall14.hs
-   examples/Misc/SmoothOpenGL3.hs
-   examples/Misc/Triangulate.hs
    examples/OrangeBook/00-README
    examples/OrangeBook/3Dlabs-License.txt
-   examples/OrangeBook/Makefile
    examples/OrangeBook/ogl2brick/Brick.frag
-   examples/OrangeBook/ogl2brick/Brick.hs
    examples/OrangeBook/ogl2brick/Brick.vert
-   examples/OrangeBook/ogl2brick/Makefile
    examples/RedBook4/00-README
-   examples/RedBook4/AAIndex.hs
-   examples/RedBook4/AARGB.hs
-   examples/RedBook4/AccAnti.hs
-   examples/RedBook4/AccPersp.hs
-   examples/RedBook4/Alpha.hs
-   examples/RedBook4/Alpha3D.hs
-   examples/RedBook4/BezCurve.hs
-   examples/RedBook4/BezMesh.hs
-   examples/RedBook4/BezSurf.hs
-   examples/RedBook4/BlendEqn.hs
-   examples/RedBook4/Checker.hs
-   examples/RedBook4/Clip.hs
-   examples/RedBook4/ColorMat.hs
-   examples/RedBook4/ColorMatrix.hs
-   examples/RedBook4/ColorTable.hs
-   examples/RedBook4/Combiner.hs
-   examples/RedBook4/Convolution.hs
-   examples/RedBook4/Cube.hs
-   examples/RedBook4/CubeMap.hs
-   examples/RedBook4/DList.hs
-   examples/RedBook4/DOF.hs
    examples/RedBook4/Data/leeds.bin
-   examples/RedBook4/Double.hs
-   examples/RedBook4/DrawF.hs
-   examples/RedBook4/Feedback.hs
-   examples/RedBook4/Fog.hs
-   examples/RedBook4/FogCoord.hs
-   examples/RedBook4/FogIndex.hs
-   examples/RedBook4/Font.hs
-   examples/RedBook4/Hello.hs
-   examples/RedBook4/Histogram.hs
-   examples/RedBook4/Image.hs
-   examples/RedBook4/Light.hs
-   examples/RedBook4/Lines.hs
-   examples/RedBook4/MVArray.hs
-   examples/RedBook4/Makefile
-   examples/RedBook4/Material.hs
-   examples/RedBook4/Minmax.hs
-   examples/RedBook4/Mipmap.hs
-   examples/RedBook4/Model.hs
-   examples/RedBook4/MoveLight.hs
-   examples/RedBook4/MultiTex.hs
-   examples/RedBook4/Multisamp.hs
-   examples/RedBook4/PickDepth.hs
-   examples/RedBook4/PickSquare.hs
-   examples/RedBook4/Planet.hs
-   examples/RedBook4/PointP.hs
-   examples/RedBook4/PolyOff.hs
-   examples/RedBook4/Polys.hs
-   examples/RedBook4/Quadric.hs
-   examples/RedBook4/ReadImage.hs
-   examples/RedBook4/Robot.hs
-   examples/RedBook4/Scene.hs
-   examples/RedBook4/Select.hs
-   examples/RedBook4/ShadowMap.hs
-   examples/RedBook4/Smooth.hs
-   examples/RedBook4/Stencil.hs
-   examples/RedBook4/Stroke.hs
-   examples/RedBook4/SurfPoints.hs
-   examples/RedBook4/Surface.hs
-   examples/RedBook4/Teapots.hs
-   examples/RedBook4/Tess.hs
-   examples/RedBook4/TessWind.hs
-   examples/RedBook4/TexBind.hs
-   examples/RedBook4/TexGen.hs
-   examples/RedBook4/TexProx.hs
-   examples/RedBook4/TexSub.hs
-   examples/RedBook4/Texture3D.hs
-   examples/RedBook4/TextureSurf.hs
-   examples/RedBook4/Torus.hs
-   examples/RedBook4/Trim.hs
-   examples/RedBook4/UnProject.hs
-   examples/RedBook4/VArray.hs
-   examples/RedBook4/Wrap.hs
    examples/RedBook8/00-README
-   examples/RedBook8/Chapter01/Makefile
    examples/RedBook8/Chapter01/triangles.frag
-   examples/RedBook8/Chapter01/Triangles.hs
    examples/RedBook8/Chapter01/triangles.vert
-   examples/RedBook8/common/LoadShaders.hs
-   examples/RedBook8/common/Makefile
-   examples/RedBook8/Makefile
-   examples/examples.mk
 
 flag UseNativeWindowsLibraries
   description:
     When compiling under Windows, use the native libraries instead of e.g. the
     ones coming with Cygwin.
 
+flag BuildExamples
+  description: Build various OpenGL/GLUT examples.
+  default: False
+
 library
   exposed-modules:
     Graphics.UI.GLUT
@@ -180,8 +79,7 @@
     containers   >= 0.3  && < 0.6,
     transformers >= 0.2  && < 0.6,
     StateVar     >= 1.1  && < 1.2,
-    OpenGLRaw    >= 2.3  && < 2.7,
-    OpenGL       >= 2.12 && < 2.14
+    OpenGL       >= 2.12 && < 3.1
   default-language: Haskell2010
   other-extensions: CPP
   ghc-options: -Wall
@@ -199,6 +97,814 @@
       frameworks: GLUT
     else
       extra-libraries: glut
+
+executable BOGLGP01-OnYourOwn1
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: OnYourOwn1.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter01
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP01-Simple
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Simple.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter01
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP02-OnYourOwn1.hs
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: OnYourOwn1.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter02
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP02-OpenGLApplication.hs
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: OpenGLApplication.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter02
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP03-Lines
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Lines.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter03
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP03-OnYourOwn1
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: OnYourOwn1.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter03
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP03-Points
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Points.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter03
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP03-Polygons
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Polygons.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter03
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable BOGLGP03-TrianglesQuads
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: TrianglesQuads.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/BOGLGP/Chapter03
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable Misc-ARBOcclude
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: ARBOcclude.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/Misc
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable Misc-ColorTriangle
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: ColorTriangle.hs
+  other-modules: LoadShaders
+  build-depends: base >= 3 && < 5, bytestring >= 0.9 && < 0.11, GLUT
+  hs-source-dirs: examples/Misc/ColorTriangle, examples/RedBook8/common
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable Misc-ExtractContours
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: ExtractContours.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/Misc
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable Misc-Gears
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Gears.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/Misc
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable Misc-Pitfall14
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Pitfall14.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/Misc
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable Misc-SmoothOpenGL3
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: SmoothOpenGL3.hs
+  build-depends: base >= 3 && < 5, bytestring >= 0.9 && < 0.11, OpenGLRaw >= 1.0 && < 3.1, GLUT
+  hs-source-dirs: examples/Misc
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable Misc-Triangulate
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Triangulate.hs
+  build-depends: base >= 3 && < 5, random >= 1.0 && < 1.2, GLUT
+  hs-source-dirs: examples/Misc
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable OrangeBook-Brick
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Brick.hs
+  build-depends: base >= 3 && < 5, bytestring >= 0.9 && < 0.11, GLUT
+  hs-source-dirs: examples/OrangeBook/ogl2brick
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-AAIndex
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: AAIndex.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-AARGB
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: AARGB.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-AccAnti
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: AccAnti.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-AccPersp
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: AccPersp.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Alpha
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Alpha.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Alpha3D
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Alpha3D.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-BezCurve
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: BezCurve.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-BezMesh
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: BezMesh.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-BezSurf
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: BezSurf.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-BlendEqn
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: BlendEqn.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Checker
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Checker.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Clip
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Clip.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-ColorMat
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: ColorMat.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-ColorMatrix
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: ColorMatrix.hs
+  other-modules: ReadImage
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-ColorTable
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: ColorTable.hs
+  other-modules: ReadImage
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Combiner
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Combiner.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Convolution
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Convolution.hs
+  other-modules: ReadImage
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Cube
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Cube.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-CubeMap
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: CubeMap.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-DList
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: DList.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-DOF
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: DOF.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Double
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Double.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-DrawF
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: DrawF.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Feedback
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Feedback.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Fog
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Fog.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-FogCoord
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: FogCoord.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-FogIndex
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: FogIndex.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Font
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Font.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Hello
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Hello.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Histogram
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Histogram.hs
+  other-modules: ReadImage
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Image
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Image.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Light
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Light.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Lines
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Lines.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-MVArray
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: MVArray.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Material
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Material.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Minmax
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Minmax.hs
+  other-modules: ReadImage
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Mipmap
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Mipmap.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Model
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Model.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-MoveLight
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: MoveLight.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-MultiTex
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: MultiTex.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Multisamp
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Multisamp.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-PickDepth
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: PickDepth.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-PickSquare
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: PickSquare.hs
+  build-depends: base >= 3 && < 5, array >= 0.1 && < 0.6, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Planet
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Planet.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-PointP
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: PointP.hs
+  build-depends: base >= 3 && < 5, random >= 1.0 && < 1.2, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-PolyOff
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: PolyOff.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Polys
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Polys.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Quadric
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Quadric.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Robot
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Robot.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Scene
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Scene.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Select
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Select.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-ShadowMap
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: ShadowMap.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Smooth
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Smooth.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Stencil
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Stencil.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Stroke
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Stroke.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-SurfPoints
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: SurfPoints.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Surface
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Surface.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Teapots
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Teapots.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Tess
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Tess.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-TessWind
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: TessWind.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-TexBind
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: TexBind.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-TexGen
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: TexGen.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-TexProx
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: TexProx.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-TexSub
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: TexSub.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Texture3D
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Texture3D.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-TextureSurf
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: TextureSurf.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Torus
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Torus.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Trim
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Trim.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-UnProject
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: UnProject.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-VArray
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: VArray.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook4-Wrap
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Wrap.hs
+  build-depends: base >= 3 && < 5, GLUT
+  hs-source-dirs: examples/RedBook4
+  default-language: Haskell2010
+  ghc-options: -Wall
+
+executable RedBook8-Triangles
+  if !flag(BuildExamples)
+    buildable: False
+  main-is: Triangles.hs
+  other-modules: LoadShaders
+  build-depends: base >= 3 && < 5, bytestring >= 0.9 && < 0.11, GLUT
+  hs-source-dirs: examples/RedBook8/Chapter01, examples/RedBook8/common
+  default-language: Haskell2010
+  ghc-options: -Wall
 
 source-repository head
   type: git
diff --git a/examples/BOGLGP/Chapter01/Makefile b/examples/BOGLGP/Chapter01/Makefile
deleted file mode 100644
--- a/examples/BOGLGP/Chapter01/Makefile
+++ /dev/null
@@ -1,1 +0,0 @@
-include ../../examples.mk
diff --git a/examples/BOGLGP/Chapter02/Makefile b/examples/BOGLGP/Chapter02/Makefile
deleted file mode 100644
--- a/examples/BOGLGP/Chapter02/Makefile
+++ /dev/null
@@ -1,1 +0,0 @@
-include ../../examples.mk
diff --git a/examples/BOGLGP/Chapter03/Makefile b/examples/BOGLGP/Chapter03/Makefile
deleted file mode 100644
--- a/examples/BOGLGP/Chapter03/Makefile
+++ /dev/null
@@ -1,1 +0,0 @@
-include ../../examples.mk
diff --git a/examples/BOGLGP/Makefile b/examples/BOGLGP/Makefile
deleted file mode 100644
--- a/examples/BOGLGP/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBDIRS := $(wildcard Chapter*)
-include ../examples.mk
diff --git a/examples/Makefile b/examples/Makefile
deleted file mode 100644
--- a/examples/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBDIRS := BOGLGP Misc OrangeBook RedBook4 RedBook8
-include examples.mk
diff --git a/examples/Misc/ColorTriangle/Makefile b/examples/Misc/ColorTriangle/Makefile
deleted file mode 100644
--- a/examples/Misc/ColorTriangle/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-HC_SEARCH_PATHS := ../../RedBook8/common/
-include ../../examples.mk
diff --git a/examples/Misc/Makefile b/examples/Misc/Makefile
deleted file mode 100644
--- a/examples/Misc/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBDIRS := ColorTriangle
-include ../examples.mk
diff --git a/examples/Misc/SmoothOpenGL3.hs b/examples/Misc/SmoothOpenGL3.hs
--- a/examples/Misc/SmoothOpenGL3.hs
+++ b/examples/Misc/SmoothOpenGL3.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-
    SmoothOpenGL3.hs (adapted from freeglut's smooth_opengl3.c example)
    Copyright (c) Sven Panne 2009 <svenpanne@gmail.com>
@@ -11,7 +12,13 @@
 import Foreign.Marshal.Array
 import Foreign.Ptr
 import Foreign.Storable
-import Graphics.Rendering.OpenGL.Raw.Core31
+#if MIN_VERSION_OpenGLRaw(3,0,0)
+import Graphics.GL
+#else
+import Graphics.Rendering.OpenGL.Raw
+#define GL_FALSE gl_FALSE
+#define GL_TRUE gl_TRUE
+#endif
 import Graphics.UI.GLUT
 import System.Exit
 import System.IO
@@ -193,8 +200,8 @@
 uniformMatrix4fv location count =
    glUniformMatrix4fv (uniformLocationToGLint location) count . marshalGLboolean
    where marshalGLboolean x = fromIntegral $ case x of
-            False -> gl_FALSE
-            True -> gl_TRUE
+            False -> GL_FALSE
+            True -> GL_TRUE
          -- MEGA HACK because UniformLocation is abstract
          uniformLocationToGLint = read . head . tail . words . show
 
diff --git a/examples/OrangeBook/Makefile b/examples/OrangeBook/Makefile
deleted file mode 100644
--- a/examples/OrangeBook/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBDIRS := ogl2brick
-include ../examples.mk
diff --git a/examples/OrangeBook/ogl2brick/Brick.hs b/examples/OrangeBook/ogl2brick/Brick.hs
--- a/examples/OrangeBook/ogl2brick/Brick.hs
+++ b/examples/OrangeBook/ogl2brick/Brick.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-
    Brick.hs (adapted from ogl2brick.c which is (c) 3Dlabs Inc. Ltd.)
    Copyright (c) Sven Panne 2006 <svenpanne@gmail.com>
@@ -5,12 +6,14 @@
    See the file libraries/GLUT/LICENSE
 -}
 
+#if !MIN_VERSION_base(4,8,0)
 import Prelude hiding ( sum )
+import Data.Foldable ( Foldable, sum )
+#endif
 import Control.Applicative
 import Control.Exception ( IOException, catch )
 import Control.Monad ( when, unless )
 import qualified Data.ByteString as B
-import Data.Foldable ( Foldable, sum )
 import Data.IORef
 import System.Exit
 import Graphics.UI.GLUT
@@ -321,9 +324,9 @@
    currentProgram $= Just brickProg
 
    let setUniform var val = do
-       location <- get (uniformLocation brickProg var)
-       reportErrors
-       uniform location $= val
+          location <- get (uniformLocation brickProg var)
+          reportErrors
+          uniform location $= val
 
    setUniform "BrickColor" (Color3 1.0 0.3 (0.2 :: GLfloat))
    setUniform "MortarColor" (Color3 0.85 0.86 (0.84 :: GLfloat))
diff --git a/examples/OrangeBook/ogl2brick/Makefile b/examples/OrangeBook/ogl2brick/Makefile
deleted file mode 100644
--- a/examples/OrangeBook/ogl2brick/Makefile
+++ /dev/null
@@ -1,1 +0,0 @@
-include ../../examples.mk
diff --git a/examples/RedBook4/Makefile b/examples/RedBook4/Makefile
deleted file mode 100644
--- a/examples/RedBook4/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-EXCLUDED_SOURCES := ReadImage.hs
-include ../examples.mk
-
-ColorMatrix ColorTable Convolution Histogram Minmax: ReadImage.o
diff --git a/examples/RedBook8/Chapter01/Makefile b/examples/RedBook8/Chapter01/Makefile
deleted file mode 100644
--- a/examples/RedBook8/Chapter01/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-HC_SEARCH_PATHS := ../common
-include ../../examples.mk
diff --git a/examples/RedBook8/Makefile b/examples/RedBook8/Makefile
deleted file mode 100644
--- a/examples/RedBook8/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-SUBDIRS := $(wildcard Chapter*)
-include ../examples.mk
diff --git a/examples/RedBook8/common/LoadShaders.hs b/examples/RedBook8/common/LoadShaders.hs
--- a/examples/RedBook8/common/LoadShaders.hs
+++ b/examples/RedBook8/common/LoadShaders.hs
@@ -20,7 +20,7 @@
 import Control.Exception
 import Control.Monad
 import qualified Data.ByteString as B
-import Graphics.Rendering.OpenGL
+import Graphics.UI.GLUT
 
 --------------------------------------------------------------------------------
 
diff --git a/examples/RedBook8/common/Makefile b/examples/RedBook8/common/Makefile
deleted file mode 100644
--- a/examples/RedBook8/common/Makefile
+++ /dev/null
@@ -1,2 +0,0 @@
-include ../../examples.mk
-HC := $(HC) -c
diff --git a/examples/examples.mk b/examples/examples.mk
deleted file mode 100644
--- a/examples/examples.mk
+++ /dev/null
@@ -1,37 +0,0 @@
-ALL_DIRS         := $(SUBDIRS:%=all-%)
-CLEAN_DIRS       := $(SUBDIRS:%=clean-%)
-HC               := ghc
-HC_FLAGS         := -v0 -Wall
-HC_PATH_FLAGS    := $(HC_SEARCH_PATHS:%=-i%)
-HS_SOURCES       := $(wildcard *.hs)
-HS_PROG_SOURCES  := $(filter-out $(EXCLUDED_SOURCES), $(HS_SOURCES))
-HS_PROGS         := $(HS_PROG_SOURCES:.hs=)
-
-.PHONY: all $(ALL_DIRS) all-common clean $(CLEAN_DIRS) foo
-
-all: $(ALL_DIRS) $(HS_PROGS)
-
-$(ALL_DIRS): all-common
-	$(MAKE) -C $(@:all-%=%) all
-
-all-common:
-ifneq ($(wildcard common),)
-	$(MAKE) -C common all
-endif
-
-clean: $(CLEAN_DIRS)
-ifneq ($(wildcard common),)
-	$(MAKE) -C common clean
-endif
-ifneq ($(HS_SOURCES),)
-	$(RM) $(HS_SOURCES:.hs=.hi) $(HS_SOURCES:.hs=.o) $(HS_PROG_SOURCES:.hs=.exe) $(HS_PROGS) $(wildcard *~)
-endif
-
-$(CLEAN_DIRS): 
-	$(MAKE) -C $(@:clean-%=%) clean
-
-$(HS_PROGS): %: %.hs
-	$(HC) $(HC_FLAGS) $(HC_PATH_FLAGS) $(EXTRA_HC_FLAGS) $<
-
-%.o: %.hs
-	$(HC) $(HC_FLAGS) $(HC_PATH_FLAGS) $(EXTRA_HC_FLAGS) $<
diff --git a/src/Graphics/UI/GLUT/Colormap.hs b/src/Graphics/UI/GLUT/Colormap.hs
--- a/src/Graphics/UI/GLUT/Colormap.hs
+++ b/src/Graphics/UI/GLUT/Colormap.hs
@@ -45,7 +45,7 @@
 import Data.StateVar ( GettableStateVar, makeGettableStateVar, StateVar, makeStateVar )
 import Foreign.C.Types ( CInt )
 import Graphics.Rendering.OpenGL.GL.VertexSpec ( Index1(..), Color3(..) )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLint, GLfloat )
+import Graphics.Rendering.OpenGL ( GLint, GLfloat )
 
 import Graphics.UI.GLUT.QueryUtils
 import Graphics.UI.GLUT.Raw
diff --git a/src/Graphics/UI/GLUT/Fonts.hs b/src/Graphics/UI/GLUT/Fonts.hs
--- a/src/Graphics/UI/GLUT/Fonts.hs
+++ b/src/Graphics/UI/GLUT/Fonts.hs
@@ -27,7 +27,7 @@
 import Foreign.C.String ( withCString )
 import Foreign.C.Types ( CInt )
 import Foreign.Ptr ( castPtr )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLint, GLfloat )
+import Graphics.Rendering.OpenGL ( GLint, GLfloat )
 
 import Graphics.UI.GLUT.Raw
 
diff --git a/src/Graphics/UI/GLUT/GameMode.hs b/src/Graphics/UI/GLUT/GameMode.hs
--- a/src/Graphics/UI/GLUT/GameMode.hs
+++ b/src/Graphics/UI/GLUT/GameMode.hs
@@ -35,8 +35,7 @@
 import Data.StateVar ( GettableStateVar, makeGettableStateVar
                      , SettableStateVar, makeSettableStateVar )
 import Foreign.C.String ( withCString )
-import Graphics.Rendering.OpenGL ( Size(..) )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLenum )
+import Graphics.Rendering.OpenGL ( Size(..), GLenum )
 
 import Graphics.UI.GLUT.Raw
 import Graphics.UI.GLUT.Types
diff --git a/src/Graphics/UI/GLUT/Objects.hs b/src/Graphics/UI/GLUT/Objects.hs
--- a/src/Graphics/UI/GLUT/Objects.hs
+++ b/src/Graphics/UI/GLUT/Objects.hs
@@ -41,8 +41,8 @@
 import Foreign.C.Types ( CInt )
 import Foreign.Marshal.Utils ( with )
 import Foreign.Ptr ( Ptr, castPtr )
-import Graphics.Rendering.OpenGL ( Height, Radius, Slices, Stacks, Vertex3(..) )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLdouble, GLint )
+import Graphics.Rendering.OpenGL (
+  Height, Radius, Slices, Stacks, Vertex3(..), GLdouble, GLint )
 
 import Graphics.UI.GLUT.Raw
 
diff --git a/src/Graphics/UI/GLUT/Overlay.hs b/src/Graphics/UI/GLUT/Overlay.hs
--- a/src/Graphics/UI/GLUT/Overlay.hs
+++ b/src/Graphics/UI/GLUT/Overlay.hs
@@ -34,7 +34,7 @@
 import Data.StateVar ( GettableStateVar, makeGettableStateVar
                      , SettableStateVar, makeSettableStateVar
                      , StateVar, makeStateVar )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLenum )
+import Graphics.Rendering.OpenGL ( GLenum )
 
 import Graphics.UI.GLUT.QueryUtils
 import Graphics.UI.GLUT.Raw
diff --git a/src/Graphics/UI/GLUT/QueryUtils.hs b/src/Graphics/UI/GLUT/QueryUtils.hs
--- a/src/Graphics/UI/GLUT/QueryUtils.hs
+++ b/src/Graphics/UI/GLUT/QueryUtils.hs
@@ -18,7 +18,7 @@
 ) where
 
 import Foreign.C.Types ( CInt )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLenum )
+import Graphics.Rendering.OpenGL ( GLenum )
 
 import Graphics.UI.GLUT.Raw
 
diff --git a/src/Graphics/UI/GLUT/Raw/Functions.hs b/src/Graphics/UI/GLUT/Raw/Functions.hs
--- a/src/Graphics/UI/GLUT/Raw/Functions.hs
+++ b/src/Graphics/UI/GLUT/Raw/Functions.hs
@@ -184,7 +184,7 @@
 import Foreign.C.String ( withCString, CString )
 import Foreign.Marshal.Error ( throwIf )
 import Foreign.Ptr ( Ptr, FunPtr, nullFunPtr )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLdouble, GLenum, GLfloat, GLint )
+import Graphics.Rendering.OpenGL ( GLdouble, GLenum, GLfloat, GLint )
 import System.IO.Unsafe ( unsafePerformIO )
 
 import Graphics.UI.GLUT.Raw.Callbacks
@@ -1461,12 +1461,12 @@
 
 -- glutSetMenuFont -------------------------------------------------------------
 
-glutSetMenuFont :: MonadIO m => GLint -> Ptr a -> m ()
+glutSetMenuFont :: MonadIO m => CInt -> Ptr a -> m ()
 glutSetMenuFont v1 v2 = liftIO $ dyn_glutSetMenuFont ptr_glutSetMenuFont v1 v2
 
 foreign import CALLCONV "dynamic" dyn_glutSetMenuFont
-  :: FunPtr (GLint -> Ptr a -> IO ())
-  ->         GLint -> Ptr a -> IO ()
+  :: FunPtr (CInt -> Ptr a -> IO ())
+  ->         CInt -> Ptr a -> IO ()
 
 {-# NOINLINE ptr_glutSetMenuFont #-}
 ptr_glutSetMenuFont :: FunPtr a
diff --git a/src/Graphics/UI/GLUT/Raw/Tokens.hs b/src/Graphics/UI/GLUT/Raw/Tokens.hs
--- a/src/Graphics/UI/GLUT/Raw/Tokens.hs
+++ b/src/Graphics/UI/GLUT/Raw/Tokens.hs
@@ -16,7 +16,7 @@
 module Graphics.UI.GLUT.Raw.Tokens where
 
 import Foreign.C.Types ( CInt, CUInt )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLenum )
+import Graphics.Rendering.OpenGL ( GLenum )
 
 glut_ACCUM :: CUInt
 glut_ACCUM = 0x0004
diff --git a/src/Graphics/UI/GLUT/State.hs b/src/Graphics/UI/GLUT/State.hs
--- a/src/Graphics/UI/GLUT/State.hs
+++ b/src/Graphics/UI/GLUT/State.hs
@@ -65,8 +65,7 @@
 import Foreign.Marshal.Alloc ( alloca )
 import Foreign.Marshal.Array ( peekArray )
 import Foreign.Storable ( peek )
-import Graphics.Rendering.OpenGL ( AttribLocation(..), Size(..) )
-import Graphics.Rendering.OpenGL.Raw.Types ( GLenum, GLint )
+import Graphics.Rendering.OpenGL ( AttribLocation(..), Size(..), GLenum, GLint )
 
 import Graphics.UI.GLUT.Overlay
 import Graphics.UI.GLUT.QueryUtils
