diff --git a/Graphics/ImageMagick/MagickCore.hs b/Graphics/ImageMagick/MagickCore.hs
--- a/Graphics/ImageMagick/MagickCore.hs
+++ b/Graphics/ImageMagick/MagickCore.hs
@@ -1,8 +1,13 @@
 module Graphics.ImageMagick.MagickCore
-       ( module X ) where
+       ( module Graphics.ImageMagick.MagickCore.Exception
+       , module Graphics.ImageMagick.MagickCore.Gem
+       , module Graphics.ImageMagick.MagickCore.Mime
+       , module Graphics.ImageMagick.MagickCore.Option
+       , module Graphics.ImageMagick.MagickCore.Types
+       ) where
 
-import           Graphics.ImageMagick.MagickCore.Exception as X
-import           Graphics.ImageMagick.MagickCore.Gem       as X
-import           Graphics.ImageMagick.MagickCore.Mime      as X
-import           Graphics.ImageMagick.MagickCore.Option    as X
-import           Graphics.ImageMagick.MagickCore.Types     as X
+import           Graphics.ImageMagick.MagickCore.Exception
+import           Graphics.ImageMagick.MagickCore.Gem
+import           Graphics.ImageMagick.MagickCore.Mime
+import           Graphics.ImageMagick.MagickCore.Option
+import           Graphics.ImageMagick.MagickCore.Types
diff --git a/Graphics/ImageMagick/MagickCore/FFI/Quantize.hsc b/Graphics/ImageMagick/MagickCore/FFI/Quantize.hsc
new file mode 100644
--- /dev/null
+++ b/Graphics/ImageMagick/MagickCore/FFI/Quantize.hsc
@@ -0,0 +1,14 @@
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+
+module Graphics.ImageMagick.MagickCore.FFI.Quantize
+    where
+
+#include <magick/MagickCore.h>
+
+import Foreign
+import Graphics.ImageMagick.MagickCore.Types.FFI.Quantize
+
+foreign import ccall unsafe "GetQuantizeInfo"
+  c_getQuantizeInfo :: Ptr QuantizeInfo -> IO ()
+
diff --git a/Graphics/ImageMagick/MagickCore/Quantize.hs b/Graphics/ImageMagick/MagickCore/Quantize.hs
new file mode 100644
--- /dev/null
+++ b/Graphics/ImageMagick/MagickCore/Quantize.hs
@@ -0,0 +1,15 @@
+module Graphics.ImageMagick.MagickCore.Quantize where
+
+import           Control.Monad.Trans.Resource
+import           Control.Monad.IO.Class
+
+import           Foreign
+
+import qualified Graphics.ImageMagick.MagickCore.FFI.Quantize as F
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Quantize (QuantizeInfo)
+
+getQuantizeInfo :: (MonadResource m) => m QuantizeInfo
+getQuantizeInfo = liftIO $
+  alloca $ \qiPtr -> do
+    () <- F.c_getQuantizeInfo qiPtr
+    peek qiPtr
diff --git a/Graphics/ImageMagick/MagickCore/Types.hs b/Graphics/ImageMagick/MagickCore/Types.hs
--- a/Graphics/ImageMagick/MagickCore/Types.hs
+++ b/Graphics/ImageMagick/MagickCore/Types.hs
@@ -1,25 +1,48 @@
 module Graphics.ImageMagick.MagickCore.Types
-  ( module X
+  ( module Graphics.ImageMagick.MagickCore.Types.FFI.AlphaChannelType
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.CacheView
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.ChannelType
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.ColorspaceType
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Composite
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Compress
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Constitute
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Distort
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.DitherMethod
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Exception
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.FilterTypes
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Fx
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Geometry
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Image
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Layer
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Log
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.MagickFunction
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.PaintMethod
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.PixelPacket
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Statistic
+  , module Graphics.ImageMagick.MagickCore.Types.FFI.Types
+  , module Graphics.ImageMagick.MagickCore.Types.MBits
   ) where
 
-import           Graphics.ImageMagick.MagickCore.Types.FFI.AlphaChannelType as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.CacheView        as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.ChannelType      as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.ColorspaceType   as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Composite        as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Compress         as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Constitute       as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Distort          as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Exception        as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.FilterTypes      as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Fx               as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Geometry         as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Image            as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Layer            as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Log              as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.MagickFunction   as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.PaintMethod      as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.PixelPacket      as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Statistic        as X
-import           Graphics.ImageMagick.MagickCore.Types.FFI.Types            as X
-import           Graphics.ImageMagick.MagickCore.Types.MBits                as X
+import           Graphics.ImageMagick.MagickCore.Types.FFI.AlphaChannelType
+import           Graphics.ImageMagick.MagickCore.Types.FFI.CacheView
+import           Graphics.ImageMagick.MagickCore.Types.FFI.ChannelType
+import           Graphics.ImageMagick.MagickCore.Types.FFI.ColorspaceType
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Composite
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Compress
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Constitute
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Distort
+import           Graphics.ImageMagick.MagickCore.Types.FFI.DitherMethod
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Exception
+import           Graphics.ImageMagick.MagickCore.Types.FFI.FilterTypes
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Fx
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Geometry
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Image
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Layer
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Log
+import           Graphics.ImageMagick.MagickCore.Types.FFI.MagickFunction
+import           Graphics.ImageMagick.MagickCore.Types.FFI.PaintMethod
+import           Graphics.ImageMagick.MagickCore.Types.FFI.PixelPacket
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Statistic
+import           Graphics.ImageMagick.MagickCore.Types.FFI.Types
+import           Graphics.ImageMagick.MagickCore.Types.MBits
+
diff --git a/Graphics/ImageMagick/MagickCore/Types/FFI/ColorspaceType.hsc b/Graphics/ImageMagick/MagickCore/Types/FFI/ColorspaceType.hsc
--- a/Graphics/ImageMagick/MagickCore/Types/FFI/ColorspaceType.hsc
+++ b/Graphics/ImageMagick/MagickCore/Types/FFI/ColorspaceType.hsc
@@ -1,13 +1,15 @@
 {-# LANGUAGE CPP                      #-}
 {-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 module Graphics.ImageMagick.MagickCore.Types.FFI.ColorspaceType
     where
 
 import           Foreign.C.Types
+import           Foreign.Storable
 #include <magick/MagickCore.h>
 
 newtype ColorspaceType = ColorspaceType { unColorspaceType :: CInt }
-    deriving (Eq, Show)
+    deriving (Eq, Show, Storable)
 
 
 #{enum ColorspaceType, ColorspaceType,
diff --git a/Graphics/ImageMagick/MagickCore/Types/FFI/DitherMethod.hsc b/Graphics/ImageMagick/MagickCore/Types/FFI/DitherMethod.hsc
new file mode 100644
--- /dev/null
+++ b/Graphics/ImageMagick/MagickCore/Types/FFI/DitherMethod.hsc
@@ -0,0 +1,20 @@
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+module Graphics.ImageMagick.MagickCore.Types.FFI.DitherMethod
+    where
+
+import           Foreign.C.Types
+import           Foreign.Storable
+#include <magick/MagickCore.h>
+
+newtype DitherMethod = DitherMethod { unDitherMethod :: CInt }
+    deriving (Eq,Show,Storable)
+
+#{enum DitherMethod, DitherMethod
+  , undefinedDitherFilter      = UndefinedDitherMethod
+  , noDitherMethod             = NoDitherMethod
+  , riemersmaDitherMethod      = RiemersmaDitherMethod
+  , floydSteinbergDitherMethod = FloydSteinbergDitherMethod
+}
+
diff --git a/Graphics/ImageMagick/MagickCore/Types/FFI/Log.hsc b/Graphics/ImageMagick/MagickCore/Types/FFI/Log.hsc
--- a/Graphics/ImageMagick/MagickCore/Types/FFI/Log.hsc
+++ b/Graphics/ImageMagick/MagickCore/Types/FFI/Log.hsc
@@ -13,25 +13,25 @@
 
 #{enum LogEventType, LogEventType
   , undefinedEvents = UndefinedEvents
-  , oEvents = NoEvents
-  , raceEvent = TraceEvent
-  , nnotateEvent = AnnotateEvent
-  , lobEvent = BlobEvent
-  , acheEvent = CacheEvent
-  , oderEvent = CoderEvent
-  , onfigureEvent = ConfigureEvent
-  , eprecateEvent = DeprecateEvent
-  , rawEvent = DrawEvent
-  , xceptionEvent = ExceptionEvent
-  , mageEvent = ImageEvent
-  , ocaleEvent = LocaleEvent
-  , oduleEvent = ModuleEvent
-  , olicyEvent = PolicyEvent
-  , esourceEvent = ResourceEvent
-  , ransformEvent = TransformEvent
-  , serEvent = UserEvent
-  , andEvent = WandEvent
+  , noEvents = NoEvents
+  , traceEvent = TraceEvent
+  , annotateEvent = AnnotateEvent
+  , blobEvent = BlobEvent
+  , cacheEvent = CacheEvent
+  , coderEvent = CoderEvent
+  , configureEvent = ConfigureEvent
+  , deprecateEvent = DeprecateEvent
+  , drawEvent = DrawEvent
+  , exceptionEvent = ExceptionEvent
+  , imageEvent = ImageEvent
+  , localeEvent = LocaleEvent
+  , moduleEvent = ModuleEvent
+  , policyEvent = PolicyEvent
+  , resourceEvent = ResourceEvent
+  , transformEvent = TransformEvent
+  , userEvent = UserEvent
+  , wandEvent = WandEvent
   , x11Event = X11Event
-  , ccelerateEvent = AccelerateEvent
+  , accelerateEvent = AccelerateEvent
   , allEvents = AllEvents
 }
diff --git a/Graphics/ImageMagick/MagickCore/Types/FFI/PixelPacket.hsc b/Graphics/ImageMagick/MagickCore/Types/FFI/PixelPacket.hsc
--- a/Graphics/ImageMagick/MagickCore/Types/FFI/PixelPacket.hsc
+++ b/Graphics/ImageMagick/MagickCore/Types/FFI/PixelPacket.hsc
@@ -12,6 +12,8 @@
 instance Storable PixelPacket where
   sizeOf = const #size PixelPacket
   alignment _ = 1
+  peek = error "not yet implemented"
+  poke = error "not yet implemented"
 
 pixelPacketGetRed, pixelPacketGetGreen, pixelPacketGetBlue
                  , pixelPacketGetOpacity 
diff --git a/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc b/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc
new file mode 100644
--- /dev/null
+++ b/Graphics/ImageMagick/MagickCore/Types/FFI/Quantize.hsc
@@ -0,0 +1,44 @@
+{-# LANGUAGE CPP                      #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+
+module Graphics.ImageMagick.MagickCore.Types.FFI.Quantize where
+
+import           Graphics.ImageMagick.MagickCore.Types (ColorspaceType, DitherMethod)
+import           Graphics.ImageMagick.MagickWand.FFI.Types (MagickBooleanType)
+import           Foreign.C.Types (CSize)
+import           Foreign.Storable
+
+#include <magick/MagickCore.h>
+
+data QuantizeInfo = QuantizeInfo { numberOfColors :: CSize
+                                 , treeDepth :: CSize
+                                 , shouldDither :: MagickBooleanType
+                                 , colorspace :: ColorspaceType
+                                 , measureError :: MagickBooleanType
+                                 , signature :: CSize
+                                 , ditherMethod :: DitherMethod
+                                 }
+  deriving (Eq, Show)
+
+instance Storable QuantizeInfo where
+  sizeOf      _ = (#size QuantizeInfo)
+  alignment   _ = alignment (undefined :: CSize)
+  peek ptr      = do
+    numberOfColors' <- (#peek QuantizeInfo, number_colors) ptr
+    treeDepth'      <- (#peek QuantizeInfo, tree_depth) ptr
+    shouldDither'   <- (#peek QuantizeInfo, dither) ptr
+    colorspace'     <- (#peek QuantizeInfo, colorspace) ptr
+    measureError'   <- (#peek QuantizeInfo, measure_error) ptr
+    signature'      <- (#peek QuantizeInfo, signature) ptr
+    ditherMethod'   <- (#peek QuantizeInfo, dither_method) ptr
+    return QuantizeInfo { numberOfColors = numberOfColors'
+                        , treeDepth      = treeDepth'
+                        , shouldDither   = shouldDither'
+                        , colorspace     = colorspace'
+                        , measureError   = measureError'
+                        , signature      = signature'
+                        , ditherMethod   = ditherMethod'
+                        }
+  poke = error "not yet implemented"
+
diff --git a/Graphics/ImageMagick/MagickCore/Types/FFI/Types.hsc b/Graphics/ImageMagick/MagickCore/Types/FFI/Types.hsc
--- a/Graphics/ImageMagick/MagickCore/Types/FFI/Types.hsc
+++ b/Graphics/ImageMagick/MagickCore/Types/FFI/Types.hsc
@@ -19,8 +19,6 @@
 
 magickEpsilon :: forall a. Fractional a => a
 magickEpsilon   = 1e-10 -- #const MagickEpsilon
-magickHuge :: forall a. Num a => a
-magickHuge      = #const MagickHuge
 maxColormapSize :: forall a. Num a => a
 maxColormapSize = #const MaxColormapSize
 maxMap :: forall a. Num a => a
diff --git a/Graphics/ImageMagick/MagickWand.hs b/Graphics/ImageMagick/MagickWand.hs
--- a/Graphics/ImageMagick/MagickWand.hs
+++ b/Graphics/ImageMagick/MagickWand.hs
@@ -1,11 +1,19 @@
 module Graphics.ImageMagick.MagickWand
-  ( module G ) where
+  ( module Graphics.ImageMagick.MagickCore
+  , module Graphics.ImageMagick.MagickWand.DrawingWand
+  , module Graphics.ImageMagick.MagickWand.MagickWand
+  , module Graphics.ImageMagick.MagickWand.PixelIterator
+  , module Graphics.ImageMagick.MagickWand.PixelPacket
+  , module Graphics.ImageMagick.MagickWand.PixelWand
+  , module Graphics.ImageMagick.MagickWand.Types
+  , module Graphics.ImageMagick.MagickWand.WandImage
+  ) where
 
-import           Graphics.ImageMagick.MagickCore               as G
-import           Graphics.ImageMagick.MagickWand.DrawingWand   as G
-import           Graphics.ImageMagick.MagickWand.MagickWand    as G
-import           Graphics.ImageMagick.MagickWand.PixelIterator as G
-import           Graphics.ImageMagick.MagickWand.PixelPacket   as G
-import           Graphics.ImageMagick.MagickWand.PixelWand     as G
-import           Graphics.ImageMagick.MagickWand.Types         as G
-import           Graphics.ImageMagick.MagickWand.WandImage     as G
+import           Graphics.ImageMagick.MagickCore
+import           Graphics.ImageMagick.MagickWand.DrawingWand
+import           Graphics.ImageMagick.MagickWand.MagickWand
+import           Graphics.ImageMagick.MagickWand.PixelIterator
+import           Graphics.ImageMagick.MagickWand.PixelPacket
+import           Graphics.ImageMagick.MagickWand.PixelWand
+import           Graphics.ImageMagick.MagickWand.Types
+import           Graphics.ImageMagick.MagickWand.WandImage
diff --git a/Graphics/ImageMagick/MagickWand/FFI/Types.hsc b/Graphics/ImageMagick/MagickWand/FFI/Types.hsc
--- a/Graphics/ImageMagick/MagickWand/FFI/Types.hsc
+++ b/Graphics/ImageMagick/MagickWand/FFI/Types.hsc
@@ -1,4 +1,5 @@
 {-# LANGUAGE CPP, ForeignFunctionInterface, NoMonomorphismRestriction, RankNTypes #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 
 module Graphics.ImageMagick.MagickWand.FFI.Types
   where
@@ -31,7 +32,7 @@
 
 
 newtype MagickBooleanType = MagickBooleanType { unMagickBooleanType :: CInt}
-  deriving (Eq, Show)
+  deriving (Eq, Show, Storable)
 
 #{enum MagickBooleanType, MagickBooleanType 
   , mFalse = MagickFalse
@@ -75,6 +76,8 @@
 instance Storable MagickPixelPacket where
   sizeOf = const #size MagickPixelPacket
   alignment _ = 1
+  peek = error "not yet implemented"
+  poke = error "not yet implemented"
 
 getPixelRed, getPixelGreen, getPixelBlue, getPixelIndex
   :: Storable a => Ptr b -> IO a
diff --git a/Graphics/ImageMagick/MagickWand/FFI/WandImage.hsc b/Graphics/ImageMagick/MagickWand/FFI/WandImage.hsc
--- a/Graphics/ImageMagick/MagickWand/FFI/WandImage.hsc
+++ b/Graphics/ImageMagick/MagickWand/FFI/WandImage.hsc
@@ -387,6 +387,26 @@
   -> ImageLayerMethod -- ^ the method of selecting the size of the initial canvas
   -> IO (Ptr MagickWand)
 
+-- | MagickOptimizeImageLayers() compares each image the GIF disposed
+-- forms of the previous image in the sequence. From this it attempts
+-- to select the smallest cropped image to replace each frame, while
+-- preserving the results of the animation.
+foreign import ccall "MagickOptimizeImageLayers" magickOptimizeImageLayers
+  :: Ptr MagickWand
+  -> IO (Ptr MagickWand)
+
+-- | MagickOptimizeImageTransparency() takes a frame optimized GIF animation, and
+-- compares the overlayed pixels against the disposal image resulting from all
+-- the previous frames in the animation. Any pixel that does not change the
+-- disposal image (and thus does not effect the outcome of an overlay) is made
+-- transparent.
+--
+-- WARNING: This modifies the current images directly, rather than generate
+-- a new image sequence.
+foreign import ccall "MagickOptimizeImageTransparency" magickOptimizeImageTransparency
+  :: Ptr MagickWand
+  -> IO MagickBooleanType
+
 -- | MagickTintImage() applies a color vector to each pixel in the image. The
 -- length of the vector is 0 for black and white and at its maximum for the
 -- midtones. The vector weighting function is f(x)=(1-(4.0*((x-0.5)*(x-0.5)))).
diff --git a/Graphics/ImageMagick/MagickWand/WandImage.hs b/Graphics/ImageMagick/MagickWand/WandImage.hs
--- a/Graphics/ImageMagick/MagickWand/WandImage.hs
+++ b/Graphics/ImageMagick/MagickWand/WandImage.hs
@@ -213,8 +213,8 @@
 -- , normalizeImage
 -- , oilPaintImage
 -- , opaquePaintImage
--- , optimizeImageLayers
--- , optimizeImageTransparency
+, optimizeImageLayers
+, optimizeImageTransparency
 -- , orderedPosterizeImage
 -- , pingImage
 -- , pingImageBlob
@@ -648,6 +648,26 @@
 -- individual image.
 mergeImageLayers :: (MonadResource m) => PMagickWand -> ImageLayerMethod -> m (ReleaseKey, PMagickWand)
 mergeImageLayers w method = wandResource (F.magickMergeImageLayers w method)
+
+-- | MagickOptimizeImageLayers() compares each image the GIF disposed
+-- forms of the previous image in the sequence. From this it attempts
+-- to select the smallest cropped image to replace each frame, while
+-- preserving the results of the animation.
+optimizeImageLayers :: (MonadResource m) => PMagickWand
+  -> m (ReleaseKey, PMagickWand)
+optimizeImageLayers = wandResource . F.magickOptimizeImageLayers
+
+-- | OptimizeImageTransparency() takes a frame optimized GIF animation, and
+-- | compares the overlayed pixels against the disposal image resulting from all
+-- | the previous frames in the animation. Any pixel that does not change the
+-- | disposal image (and thus does not effect the outcome of an overlay) is made
+-- | transparent.
+-- |
+-- | WARNING: This modifies the current images directly, rather than generate
+-- | a new image sequence.
+optimizeImageTransparency :: (MonadResource m) => PMagickWand
+  -> m ()
+optimizeImageTransparency w = withException_ w $! F.magickOptimizeImageTransparency w
 
 -- | Applies a color vector to each pixel in the image. The length of the
 -- vector is 0 for black and white and at its maximum for the midtones.
diff --git a/imagemagick.cabal b/imagemagick.cabal
--- a/imagemagick.cabal
+++ b/imagemagick.cabal
@@ -1,5 +1,5 @@
 Name:                imagemagick
-Version:             0.0.3.5
+Version:             0.0.3.7
 Synopsis:            bindings to imagemagick library
 License:             OtherLicense
 License-file:        LICENSE
@@ -22,11 +22,13 @@
                       , Graphics.ImageMagick.MagickCore.FFI.Log
                       , Graphics.ImageMagick.MagickCore.FFI.Mime
                       , Graphics.ImageMagick.MagickCore.FFI.Option
+                      , Graphics.ImageMagick.MagickCore.FFI.Quantize
                       , Graphics.ImageMagick.MagickCore.Types.FFI.CacheView
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Composite
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Compress
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Constitute
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Distort
+                      , Graphics.ImageMagick.MagickCore.Types.FFI.DitherMethod
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Exception
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Fx
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Geometry
@@ -35,6 +37,7 @@
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Log
                       , Graphics.ImageMagick.MagickCore.Types.FFI.PaintMethod
                       , Graphics.ImageMagick.MagickCore.Types.FFI.PixelPacket
+                      , Graphics.ImageMagick.MagickCore.Types.FFI.Quantize
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Statistic
                       , Graphics.ImageMagick.MagickCore.Types.FFI.Types
                       , Graphics.ImageMagick.MagickCore.Types.FFI.ChannelType
@@ -48,6 +51,7 @@
                       , Graphics.ImageMagick.MagickCore.Mime
                       , Graphics.ImageMagick.MagickCore.Exception
                       , Graphics.ImageMagick.MagickCore.Gem
+                      , Graphics.ImageMagick.MagickCore.Quantize
                       , Graphics.ImageMagick.MagickWand
                       , Graphics.ImageMagick.MagickWand.WandImage
                       , Graphics.ImageMagick.MagickWand.Types
@@ -67,8 +71,8 @@
                       , Graphics.ImageMagick.MagickWand.FFI.WandProperties
   build-depends:       base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
-                      , vector >= 0.9 && <0.11
+                      , transformers >= 0.3 && < 0.5
+                      , vector >= 0.9 && < 0.11.1
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
                       , system-filepath == 0.4.*
@@ -87,7 +91,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && < 0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -106,7 +110,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && < 0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && < 1.3
@@ -125,7 +129,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && < 0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -145,7 +149,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -164,7 +168,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -182,7 +186,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && < 0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && < 1.3
@@ -202,7 +206,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && < 0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -221,7 +225,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && < 1.3
@@ -239,7 +243,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -258,7 +262,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -277,7 +281,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -296,7 +300,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -315,7 +319,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -334,7 +338,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -353,7 +357,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -372,7 +376,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -392,7 +396,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -411,7 +415,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -430,7 +434,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -449,7 +453,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -468,7 +472,7 @@
     Buildable:        True
     build-depends:      base >= 4.0 && <5.0
                       , resourcet >= 0.3 && <1.2
-                      , transformers == 0.3.*
+                      , transformers >= 0.3 && <0.5
                       , vector >= 0.9 && <0.11
                       , bytestring >= 0.9 && <0.11
                       , text >= 0.11 && <1.3
@@ -488,7 +492,7 @@
                      , lifted-base >= 0.1 && <0.3
                      , directory
                      , resourcet >= 0.3 && <1.2
-                     , transformers == 0.3.*
+                     , transformers >= 0.3 && <0.5
                      , vector >= 0.9 && <0.11
                      , bytestring >= 0.9 && <0.11
                      , text >= 0.11 && <1.3
diff --git a/test/ImageTest.hs b/test/ImageTest.hs
--- a/test/ImageTest.hs
+++ b/test/ImageTest.hs
@@ -414,9 +414,12 @@
 
 testGetImagesBlob :: String -> IO()
 testGetImagesBlob imgName = withImage imgName $ \w -> do
+  numImgs <- getNumberImages w
   size <- getImageSize w
   blob <- getImagesBlob w
   (_,w') <- magickWand
   readImageBlob w' blob
+  numImgs' <- getNumberImages w'
   size' <- getImageSize w'
+  liftIO $ numImgs @?= numImgs'
   liftIO $ size' @?= size
