diff --git a/HCodecs.cabal b/HCodecs.cabal
--- a/HCodecs.cabal
+++ b/HCodecs.cabal
@@ -1,5 +1,5 @@
 name: HCodecs
-version: 0.4.1
+version: 0.4.2
 cabal-Version: >= 1.8
 license: BSD3
 license-file: LICENSE
diff --git a/src/Data/Audio.hs b/src/Data/Audio.hs
--- a/src/Data/Audio.hs
+++ b/src/Data/Audio.hs
@@ -30,23 +30,19 @@
  , fromSample
  ) where
 
+import Data.Array.IO     (MArray, IOUArray, newArray_, writeArray)
+import Data.Array.Unsafe (unsafeFreeze, unsafeThaw)
+
 import Internal.Arbitrary
 import Internal.ByteString.Parser
 import Internal.ByteString.Builder
 
 import Test.QuickCheck
-
+import System.IO.Unsafe
+import Data.Array.Unboxed
 import Data.Word
 import Data.Int
-
-import Data.Array.Unboxed
-import Data.Array.IO
-import Data.Array.Unsafe
-
 import Data.Monoid
-
-import System.IO.Unsafe
-
 
 type Sample = Double
 type SampleData a = UArray Int a
diff --git a/src/Internal/ByteString/Builder.hs b/src/Internal/ByteString/Builder.hs
--- a/src/Internal/ByteString/Builder.hs
+++ b/src/Internal/ByteString/Builder.hs
@@ -3,7 +3,7 @@
 -- Module      : Data.ByteString.Builder
 -- Copyright   : Lennart Kolmodin, Ross Paterson, George Giorgidze
 -- License     : BSD3
--- 
+--
 -- Maintainer  : George Giorgidze <http://cs.nott.ac.uk/~ggg/>
 -- Stability   : experimental
 -- Portability : Portable
@@ -62,15 +62,21 @@
 
   ) where
 
-import Foreign
-import System.IO.Unsafe (unsafePerformIO)
-import Data.Monoid
-import qualified Data.ByteString      as S
-import qualified Data.ByteString.Lazy as L
 
-import Data.ByteString.Internal (inlinePerformIO,c2w)
 import qualified Data.ByteString.Internal as S
+import qualified Data.ByteString          as S
+import qualified Data.ByteString.Lazy     as L
 
+import Foreign.Storable         (Storable, poke, sizeOf)
+import Foreign.Ptr              (Ptr, plusPtr)
+import Foreign.ForeignPtr       (ForeignPtr, withForeignPtr)
+import System.IO.Unsafe         (unsafePerformIO)
+import Data.ByteString.Internal (inlinePerformIO,c2w)
+
+import Data.Bits
+import Data.Word
+import Data.Int
+import Data.Monoid
 
 ------------------------------------------------------------------------
 
diff --git a/src/Internal/ByteString/Parser.hs b/src/Internal/ByteString/Parser.hs
--- a/src/Internal/ByteString/Parser.hs
+++ b/src/Internal/ByteString/Parser.hs
@@ -101,19 +101,24 @@
     , varLenLe
   ) where
 
-import Control.Monad
-import Control.Applicative
-import Data.Maybe (isNothing)
-
-import qualified Data.ByteString as B
-import qualified Data.ByteString.Lazy as L
-import qualified Data.ByteString.Internal as B
+import qualified Data.ByteString               as B
+import qualified Data.ByteString.Lazy          as L
+import qualified Data.ByteString.Internal      as B
 import qualified Data.ByteString.Lazy.Internal as L
 
-import Foreign
-import Control.Monad.ST
+import Foreign.Storable        (Storable, peek, sizeOf)
+import Foreign.Ptr             (plusPtr, castPtr)
+import Foreign.ForeignPtr      (withForeignPtr)
+import Control.Monad.ST        (runST)
 import Control.Monad.ST.Unsafe (unsafeInterleaveST)
+
+import Control.Monad
+import Control.Applicative
 import Data.STRef
+import Data.Word
+import Data.Int
+import Data.Bits
+import Data.Maybe
 
 -- | The parse state
 data S = S {-# UNPACK #-} !B.ByteString  -- current chunk
