diff --git a/Graphics/Rendering/OGL/GL/CoordTrans.hs b/Graphics/Rendering/OGL/GL/CoordTrans.hs
--- a/Graphics/Rendering/OGL/GL/CoordTrans.hs
+++ b/Graphics/Rendering/OGL/GL/CoordTrans.hs
@@ -1,3 +1,4 @@
+
 --------------------------------------------------------------------------------
 -- |
 -- Module      :  Graphics.Rendering.OGL.GL.CoordTrans
@@ -237,7 +238,7 @@
 
 --------------------------------------------------------------------------------
 
-class Storable c => MatrixComponent c where
+class (Num c, Storable c) => MatrixComponent c where
    getMatrix :: GetPName -> Ptr c -> GL ()
    loadMatrix :: Ptr c -> GL ()
    loadTransposeMatrix :: Ptr c -> GL ()
@@ -301,10 +302,10 @@
    -- | Call the action with the given matrix. /Note:/ The action is /not/
    -- allowed to modify the matrix elements!
    withMatrix ::
-      MatrixComponent c => m c -> (MatrixOrder -> Ptr c -> GL a) -> GL a
+      MatrixComponent c =>  m c -> (MatrixOrder -> Ptr c -> GL a) -> GL a
 
-   newMatrix :: MatrixComponent c => MatrixOrder -> [c] -> GL (m c)
-   getMatrixComponents :: MatrixComponent c => MatrixOrder -> m c -> GL [c]
+   newMatrix :: MatrixComponent c =>  MatrixOrder -> [c] -> GL (m c)
+   getMatrixComponents :: MatrixComponent c =>  MatrixOrder -> m c -> GL [c]
 
    withNewMatrix order act = liftIO $ 
       allocaArray 16 $ \p -> do
diff --git a/Graphics/Rendering/OGL/GL/FlushFinish.hs b/Graphics/Rendering/OGL/GL/FlushFinish.hs
--- a/Graphics/Rendering/OGL/GL/FlushFinish.hs
+++ b/Graphics/Rendering/OGL/GL/FlushFinish.hs
@@ -17,7 +17,12 @@
    flush, finish      
 ) where
 
-import Graphics.Rendering.OGL.Monad
+import Graphics.Rendering.OGL.Monad hiding (GL)
+import Control.Monad
+import Control.Monad.Trans
+
+newtype GL a = GL (IO a) deriving (Functor, Monad, MonadIO)
+
 --------------------------------------------------------------------------------
 
 -- | Different GL implementations buffer commands in several different
diff --git a/Graphics/Rendering/OGL/Monad.hs b/Graphics/Rendering/OGL/Monad.hs
--- a/Graphics/Rendering/OGL/Monad.hs
+++ b/Graphics/Rendering/OGL/Monad.hs
@@ -17,7 +17,7 @@
 -- - 'PrimitiveGL' a primitive command sent during begin\/end context.
 -- 
 
-module Graphics.Rendering.OGL.Monad (liftIO, runGL, runGLA, GL, runPrimitive, PrimitiveGL, MonadGL) where 
+module Graphics.Rendering.OGL.Monad (liftIO, runGL, runGLA, GL(..), runPrimitive, PrimitiveGL(..), MonadGL) where 
 
 import Control.Monad
 import Control.Applicative
diff --git a/OGL.cabal b/OGL.cabal
--- a/OGL.cabal
+++ b/OGL.cabal
@@ -1,5 +1,5 @@
 name:		OGL
-version:	0.0.0
+version:	0.0.1
 license:	BSD3
 license-file:	LICENSE
 maintainer:	Neal Alexander <relapse.dev@gmx.com>
