diff --git a/Control/Monad/Array/Class.hs b/Control/Monad/Array/Class.hs
--- a/Control/Monad/Array/Class.hs
+++ b/Control/Monad/Array/Class.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeFamilies, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, UndecidableInstances #-}
+{-# LANGUAGE CPP, TypeFamilies, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, UndecidableInstances #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Control.Monad.Array.Class
@@ -15,7 +15,9 @@
   , MonadUArray(..)
   ) where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative
+#endif
 import Control.Concurrent.STM
 import Control.Monad (liftM)
 import Control.Monad.ST
diff --git a/monadic-arrays.cabal b/monadic-arrays.cabal
--- a/monadic-arrays.cabal
+++ b/monadic-arrays.cabal
@@ -1,6 +1,6 @@
 name:          monadic-arrays
 category:      Data Structures
-version:       0.2.1.4
+version:       0.2.2
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -23,7 +23,8 @@
   build-depends:
     base         >= 4       && < 5,
     array        >= 0.3.0.2 && < 0.6,
-    transformers >= 0.2.0   && < 0.5,
+    transformers >= 0.2.0   && < 0.6,
+    transformers-compat >= 0.3 && < 1,
     stm          >= 2.1.2.1 && < 2.6
 
   exposed-modules:
@@ -31,3 +32,8 @@
     Data.Array.MArray.Extras
 
   ghc-options: -Wall
+
+  -- hack around the buggy unused matches check for class associated types in ghc 8 rc1
+  if impl(ghc >= 8)
+    ghc-options: -fno-warn-unused-matches
+
