diff --git a/Graphics/Formats/Collada/Render.hs b/Graphics/Formats/Collada/Render.hs
--- a/Graphics/Formats/Collada/Render.hs
+++ b/Graphics/Formats/Collada/Render.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving, ScopedTypeVariables, PatternGuards, RecursiveDo #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving, ScopedTypeVariables, PatternGuards, DoRec #-}
 
 module Graphics.Formats.Collada.Render 
     ( compile )
@@ -15,7 +15,8 @@
 import Control.Applicative
 import Control.Monad.Trans.Reader
 import Control.Monad.Trans.State
-import Control.Monad.Trans
+import Control.Monad.Trans.Class
+import Control.Monad.IO.Class
 import Control.Monad (when, forM_, liftM2, liftM3)
 import GHC.Prim (Any)
 import Unsafe.Coerce (unsafeCoerce)
@@ -43,10 +44,11 @@
 cached f ident = CompileM $ do
     cache <- lift get
     case Map.lookup ident cache of
-        Nothing -> mdo
-            lift . modify . Map.insert ident . unsafeCoerce $ result
-            result <- runCompileM $ f =<< findSymbol ident
-            return result
+        Nothing -> do
+                rec
+                    lift . modify . Map.insert ident . unsafeCoerce $ result
+                    result <- runCompileM $ f =<< findSymbol ident
+                return result
         Just result -> return (unsafeCoerce result)
 
 lookup' :: (Ord k, Show k) => k -> Map.Map k a -> a
diff --git a/graphics-formats-collada.cabal b/graphics-formats-collada.cabal
--- a/graphics-formats-collada.cabal
+++ b/graphics-formats-collada.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.2.0
+Version:             0.3.0
 
 -- A short (one-line) description of the package.
 Synopsis:            Load 3D geometry in the COLLADA format
@@ -59,9 +59,9 @@
   Build-depends: 
     base == 4.*,
     containers,
-    transformers == 0.1.*,
-    ghc-prim == 0.1.*,
+    transformers == 0.2.*,
     hxt == 8.5.*,
+    ghc-prim == 0.2.*,
     OpenGL == 2.4.*, 
     stb-image == 0.2.*,
     bitmap-opengl == 0.0.*
