diff --git a/.gitignore b/.gitignore
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
 dist/
+dist-newstyle/
 .hsenv/
 docs
 wiki
@@ -15,3 +16,19 @@
 .cabal-sandbox/
 cabal.sandbox.config
 codex.tags
+.stack-work/
+cabal-dev
+*.chi
+*.chs.h
+*.dyn_o
+*.dyn_hi
+.hpc
+.hsenv
+*.prof
+*.aux
+*.hp
+*.eventlog
+cabal.project.local
+cabal.project.local~
+.HTF/
+.ghc.environment.*
diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,8 @@
+0.2.3 [2018.01.18]
+------------------
+* Add an `Apply` context to the `Monoid` instance for `Effect`, allowing
+  `lens-action` to build against `lens-4.16`.
+
 0.2.2
 -----
 * Add a library dependency for the `doctests` test suite
diff --git a/lens-action.cabal b/lens-action.cabal
--- a/lens-action.cabal
+++ b/lens-action.cabal
@@ -1,6 +1,6 @@
 name:          lens-action
 category:      Data, Lenses, Generics
-version:       0.2.2
+version:       0.2.3
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -12,7 +12,13 @@
 copyright:     Copyright (C) 2012-2014 Edward A. Kmett
 build-type:    Custom
 -- build-tools:   cpphs
-tested-with:   GHC==7.4.2, GHC==7.6.3, GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.1
+tested-with:   GHC == 7.4.2
+             , GHC == 7.6.3
+             , GHC == 7.8.4
+             , GHC == 7.10.3
+             , GHC == 8.0.2
+             , GHC == 8.2.2
+             , GHC == 8.4.1
 synopsis:      Monadic Getters and Folds
 description:
   This package contains combinators and types for working with
diff --git a/src/Control/Lens/Action/Internal.hs b/src/Control/Lens/Action/Internal.hs
--- a/src/Control/Lens/Action/Internal.hs
+++ b/src/Control/Lens/Action/Internal.hs
@@ -97,7 +97,7 @@
   Effect ma <> Effect mb = Effect (liftF2 (<>) ma mb)
   {-# INLINE (<>) #-}
 
-instance (Monad m, Monoid r) => Monoid (Effect m r a) where
+instance (Apply m, Monad m, Monoid r) => Monoid (Effect m r a) where
   mempty = Effect (return mempty)
   {-# INLINE mempty #-}
   Effect ma `mappend` Effect mb = Effect (liftM2 mappend ma mb)
