diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+# 0.1.11.1
+
+* Fixed compilation on GHC 8.4.
+
 # 0.1.11.0
 
 * Exported `Focusing`, etc. from `Lens.Micro.Mtl.Internal`.
diff --git a/microlens-mtl.cabal b/microlens-mtl.cabal
--- a/microlens-mtl.cabal
+++ b/microlens-mtl.cabal
@@ -1,5 +1,5 @@
 name:                microlens-mtl
-version:             0.1.11.0
+version:             0.1.11.1
 synopsis:            microlens support for Reader/Writer/State from mtl
 description:
   This package contains functions (like 'view' or '+=') which work on 'MonadReader', 'MonadWriter', and 'MonadState' from the mtl package.
diff --git a/src/Lens/Micro/Mtl.hs b/src/Lens/Micro/Mtl.hs
--- a/src/Lens/Micro/Mtl.hs
+++ b/src/Lens/Micro/Mtl.hs
@@ -1,12 +1,10 @@
-{-# LANGUAGE
-CPP,
-MultiParamTypeClasses,
-FunctionalDependencies,
-FlexibleInstances,
-UndecidableInstances,
-TypeFamilies,
-Trustworthy
-  #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE Trustworthy #-}
 
 -- This is needed because ErrorT is deprecated.
 {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-}
diff --git a/src/Lens/Micro/Mtl/Internal.hs b/src/Lens/Micro/Mtl/Internal.hs
--- a/src/Lens/Micro/Mtl/Internal.hs
+++ b/src/Lens/Micro/Mtl/Internal.hs
@@ -1,16 +1,14 @@
-{-# LANGUAGE
-CPP,
-MultiParamTypeClasses,
-FunctionalDependencies,
-FlexibleContexts,
-FlexibleInstances,
-UndecidableInstances,
-ScopedTypeVariables,
-RankNTypes,
-TypeFamilies,
-KindSignatures,
-Trustworthy
-  #-}
+{-# LANGUAGE CPP #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FunctionalDependencies #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE UndecidableInstances #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+{-# LANGUAGE RankNTypes #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE KindSignatures #-}
+{-# LANGUAGE Trustworthy #-}
 
 -- This is needed because ErrorT is deprecated.
 {-# OPTIONS_GHC -fno-warn-warnings-deprecations #-}
@@ -182,10 +180,18 @@
 instance Monoid a => Monoid (May a) where
   mempty = May (Just mempty)
   {-# INLINE mempty #-}
+#if !MIN_VERSION_base(4,11,0)
   May Nothing `mappend` _ = May Nothing
   _ `mappend` May Nothing = May Nothing
   May (Just a) `mappend` May (Just b) = May (Just (mappend a b))
   {-# INLINE mappend #-}
+#else
+instance Semigroup a => Semigroup (May a) where
+  May Nothing <> _ = May Nothing
+  _ <> May Nothing = May Nothing
+  May (Just a) <> May (Just b) = May (Just (a <> b))
+  {-# INLINE (<>) #-}
+#endif
 
 ------------------------------------------------------------------------------
 -- FocusingMay
@@ -214,10 +220,18 @@
 instance Monoid a => Monoid (Err e a) where
   mempty = Err (Right mempty)
   {-# INLINE mempty #-}
+#if !MIN_VERSION_base(4,11,0)
   Err (Left e) `mappend` _ = Err (Left e)
   _ `mappend` Err (Left e) = Err (Left e)
   Err (Right a) `mappend` Err (Right b) = Err (Right (mappend a b))
   {-# INLINE mappend #-}
+#else
+instance Semigroup a => Semigroup (Err e a) where
+  Err (Left e) <> _ = Err (Left e)
+  _ <> Err (Left e) = Err (Left e)
+  Err (Right a) <> Err (Right b) = Err (Right (a <> b))
+  {-# INLINE (<>) #-}
+#endif
 
 ------------------------------------------------------------------------------
 -- FocusingErr
@@ -503,8 +517,14 @@
 instance (Monad m, Monoid r) => Monoid (Effect m r a) where
   mempty = Effect (return mempty)
   {-# INLINE mempty #-}
+#if !MIN_VERSION_base(4,11,0)
   Effect ma `mappend` Effect mb = Effect (liftM2 mappend ma mb)
   {-# INLINE mappend #-}
+#else
+instance (Monad m, Semigroup r) => Semigroup (Effect m r a) where
+  Effect ma <> Effect mb = Effect (liftM2 (<>) ma mb)
+  {-# INLINE (<>) #-}
+#endif
 
 instance (Monad m, Monoid r) => Applicative (Effect m r) where
   pure _ = Effect (return mempty)
