diff --git a/Control/Monad/Free.hs b/Control/Monad/Free.hs
--- a/Control/Monad/Free.hs
+++ b/Control/Monad/Free.hs
@@ -35,7 +35,7 @@
     free = evalFree (Pure . Left) (Pure . Right)
     wrap = Impure
 
-data Free f a = Impure !(f (Free f a)) | Pure a
+data Free f a = Impure (f (Free f a)) | Pure a
 deriving instance (Eq a, Eq (f(Free f a))) => Eq (Free f a)
 deriving instance (Ord a, Ord (f(Free f a))) => Ord (Free f a)
 deriving instance (Show a, Show (f(Free f a))) => Show (Free f a)
@@ -68,7 +68,7 @@
 foldFree pure _    (Pure   x) = pure x
 foldFree pure imp  (Impure x) = imp (fmap (foldFree pure imp) x)
 
-foldFreeM :: (Functor f, Traversable f, Monad m) => (a -> m b) -> (f b -> m b) -> Free f a -> m b
+foldFreeM :: (Traversable f, Monad m) => (a -> m b) -> (f b -> m b) -> Free f a -> m b
 foldFreeM pure _    (Pure   x) = pure x
 foldFreeM pure imp  (Impure x) = imp =<< T.mapM (foldFreeM pure imp) x
 
diff --git a/Control/Monad/Free/Zip.hs b/Control/Monad/Free/Zip.hs
--- a/Control/Monad/Free/Zip.hs
+++ b/Control/Monad/Free/Zip.hs
@@ -3,11 +3,7 @@
 
 import Control.Monad.Free
 import Control.Monad.Trans.Class
-#ifdef TRANSFORMERS
 import Control.Monad.Trans.State
-#else
-import Control.Monad.State
-#endif
 import Data.Foldable
 import Data.Traversable as T
 
diff --git a/control-monad-free.cabal b/control-monad-free.cabal
--- a/control-monad-free.cabal
+++ b/control-monad-free.cabal
@@ -1,5 +1,5 @@
 name: control-monad-free
-version: 0.5.0.1
+version: 0.5.2
 Cabal-Version:  >= 1.6
 build-type: Simple
 license: PublicDomain
@@ -18,17 +18,9 @@
 category: Control, Monads
 stability: experimental
 
-Flag transformers
-   default: True
-
 Library
   buildable: True
-  build-depends: base >= 2 && < 5, deepseq
-  if flag(transformers)
-     build-depends: transformers == 0.2.*
-     cpp-options: -DTRANSFORMERS
-  else
-     build-depends: mtl
+  build-depends: base >= 2 && < 5, deepseq, transformers
   extensions:  StandaloneDeriving, Rank2Types, MultiParamTypeClasses, FlexibleInstances, FlexibleContexts, UndecidableInstances, OverlappingInstances
   exposed-modules:
      Control.Monad.Free
