diff --git a/Data/ZoomCache/PCM/IEEE754.hs b/Data/ZoomCache/PCM/IEEE754.hs
--- a/Data/ZoomCache/PCM/IEEE754.hs
+++ b/Data/ZoomCache/PCM/IEEE754.hs
@@ -71,7 +71,6 @@
 
 import Blaze.ByteString.Builder
 import Control.Applicative ((<$>))
-import Control.Monad.Trans (MonadIO)
 import Data.ByteString (ByteString)
 import Data.Iteratee (Iteratee)
 import Data.Word
@@ -100,8 +99,8 @@
     prettyRaw         = prettyPacketPCMFloat
     prettySummaryData = prettySummaryPCMFloat
 
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData (PCM Float)) #-}
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee ByteString m (SummaryData (PCM Float)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Float)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Float)) #-}
 
 instance ZoomWrite (PCM Float) where
     write = writeData
@@ -166,8 +165,8 @@
     prettyRaw         = prettyPacketPCMFloat
     prettySummaryData = prettySummaryPCMFloat
 
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData (PCM Double)) #-}
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee ByteString m (SummaryData (PCM Double)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Double)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Double)) #-}
 
 instance ZoomWrite (PCM Double) where
     write = writeData
diff --git a/Data/ZoomCache/PCM/Int.hs b/Data/ZoomCache/PCM/Int.hs
--- a/Data/ZoomCache/PCM/Int.hs
+++ b/Data/ZoomCache/PCM/Int.hs
@@ -96,7 +96,6 @@
 
 import Blaze.ByteString.Builder
 import Control.Applicative ((<$>))
-import Control.Monad.Trans (MonadIO)
 import Data.ByteString (ByteString)
 import Data.Int
 import Data.Iteratee (Iteratee)
@@ -126,8 +125,8 @@
     prettyRaw         = prettyPacketPCMInt
     prettySummaryData = prettySummaryPCMInt
 
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData (PCM Int)) #-}
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee ByteString m (SummaryData (PCM Int)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int)) #-}
 
 instance ZoomWrite (PCM Int) where
     write = writeData
@@ -194,8 +193,8 @@
     prettyRaw         = prettyPacketPCMInt
     prettySummaryData = prettySummaryPCMInt
 
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData (PCM Int8)) #-}
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee ByteString m (SummaryData (PCM Int8)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int8)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int8)) #-}
 
 instance ZoomWrite (PCM Int8) where
     write = writeData
@@ -262,8 +261,8 @@
     prettyRaw         = prettyPacketPCMInt
     prettySummaryData = prettySummaryPCMInt
 
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData (PCM Int16)) #-}
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee ByteString m (SummaryData (PCM Int16)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int16)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int16)) #-}
 
 instance ZoomWrite (PCM Int16) where
     write = writeData
@@ -330,8 +329,8 @@
     prettyRaw         = prettyPacketPCMInt
     prettySummaryData = prettySummaryPCMInt
 
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData (PCM Int32)) #-}
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee ByteString m (SummaryData (PCM Int32)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int32)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int32)) #-}
 
 instance ZoomWrite (PCM Int32) where
     write = writeData
@@ -398,8 +397,8 @@
     prettyRaw         = prettyPacketPCMInt
     prettySummaryData = prettySummaryPCMInt
 
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee [Word8] m (SummaryData (PCM Int64)) #-}
-{-# SPECIALIZE readSummaryPCM :: (Functor m, MonadIO m) => Iteratee ByteString m (SummaryData (PCM Int64)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee [Word8] m (SummaryData (PCM Int64)) #-}
+{-# SPECIALIZE readSummaryPCM :: (Functor m, Monad m) => Iteratee ByteString m (SummaryData (PCM Int64)) #-}
 
 instance ZoomWrite (PCM Int64) where
     write = writeData
diff --git a/Data/ZoomCache/PCM/Internal.hs b/Data/ZoomCache/PCM/Internal.hs
--- a/Data/ZoomCache/PCM/Internal.hs
+++ b/Data/ZoomCache/PCM/Internal.hs
@@ -15,7 +15,6 @@
 import Blaze.ByteString.Builder
 import Control.Applicative ((<$>))
 import Control.Monad (replicateM)
-import Control.Monad.Trans (MonadIO)
 import Data.Iteratee (Iteratee)
 import qualified Data.Iteratee as I
 import qualified Data.ListLike as LL
@@ -28,7 +27,7 @@
 ----------------------------------------------------------------------
 
 readSummaryPCM :: (I.Nullable s, LL.ListLike s Word8,
-                   Functor m, MonadIO m,
+                   Functor m, Monad m,
                    ZoomPCM a)
                => Iteratee s m (SummaryData (PCM a))
 readSummaryPCM = do
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,4 @@
-import Distribution.Simple
-main = defaultMain
+import Distribution.Simple
+
+main :: IO ()
+main = defaultMain
diff --git a/zoom-cache-pcm.cabal b/zoom-cache-pcm.cabal
--- a/zoom-cache-pcm.cabal
+++ b/zoom-cache-pcm.cabal
@@ -3,7 +3,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.1.0.0
+Version:             0.1.1.0
 
 Synopsis:            Library for zoom-cache PCM audio codecs
 
@@ -26,7 +26,7 @@
 Stability:           Experimental
 Category:            Sound
 
-Cabal-version:       >=1.2
+Cabal-version:       >=1.6
 Build-type:          Simple
 
 flag splitBase
@@ -48,9 +48,7 @@
     containers                >= 0.2     && < 0.5,
     iteratee                  >= 0.8.6.0 && < 0.9,
     ListLike                  >= 1.0     && < 4,
-    MonadCatchIO-transformers >  0.2     && < 0.3,
-    mtl                       >= 2.0.0.0 && < 3,
-    zoom-cache                >= 0.5.1.0 && < 0.6
+    zoom-cache                >= 0.6.0.0 && < 0.7
 
   Exposed-modules:
     Data.ZoomCache.PCM
@@ -64,4 +62,10 @@
   
   -- Extra tools (e.g. alex, hsc2hs, ...) needed to build the source.
   -- Build-tools:         
-  
+
+------------------------------------------------------------------------
+-- Git repo
+--
+source-repository head
+  type: git
+  location: git://github.com/kfish/zoom-cache-pcm.git
