diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,11 @@
+0.2.4 [2019.09.13]
+------------------
+* Remove the use of `cpp-options: -traditional`. This should be unnecessary
+  on all versions of GHC that `lens` supports, as modern GHCs already use
+  `-traditional` internally during preprocessing. More critically, the use
+  of `cpp-options: -traditional` breaks profiling builds on GHC 8.8
+  (see https://gitlab.haskell.org/ghc/ghc/issues/17185).
+
 0.2.3 [2018.01.18]
 ------------------
 * Add an `Apply` context to the `Monoid` instance for `Effect`, allowing
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.3
+version:       0.2.4
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -18,7 +18,9 @@
              , GHC == 7.10.3
              , GHC == 8.0.2
              , GHC == 8.2.2
-             , GHC == 8.4.1
+             , GHC == 8.4.4
+             , GHC == 8.6.5
+             , GHC == 8.8.1
 synopsis:      Monadic Getters and Folds
 description:
   This package contains combinators and types for working with
@@ -64,8 +66,6 @@
     Control.Lens.Action.Internal
     Control.Lens.Action.Reified
     Control.Lens.Action.Type
-
-  cpp-options: -traditional
 
   ghc-options: -Wall -fwarn-tabs -O2 -fdicts-cheap -funbox-strict-fields -fmax-simplifier-iterations=10
   hs-source-dirs: src
diff --git a/src/Control/Lens/Action/Reified.hs b/src/Control/Lens/Action/Reified.hs
--- a/src/Control/Lens/Action/Reified.hs
+++ b/src/Control/Lens/Action/Reified.hs
@@ -27,7 +27,9 @@
 import Data.Functor.Bind
 import Data.Functor.Plus
 import Data.Profunctor
+#if !(MIN_VERSION_base(4,11,0))
 import Data.Semigroup
+#endif
 
 import Control.Lens.Action
 
@@ -108,19 +110,19 @@
   {-# INLINE (<|>) #-}
 
 instance Bind (ReifiedMonadicFold m s) where
-  ma >>- f = ((ma >>^ f) &&& returnA) >>> app 
+  ma >>- f = ((ma >>^ f) &&& returnA) >>> app
   {-# INLINE (>>-) #-}
 
 instance Monad (ReifiedMonadicFold m s) where
   return a = MonadicFold $ folding $ \_ -> [a]
   {-# INLINE return #-}
-  ma >>= f = ((ma >>^ f) &&& returnA) >>> app 
+  ma >>= f = ((ma >>^ f) &&& returnA) >>> app
   {-# INLINE (>>=) #-}
 
 instance MonadReader s (ReifiedMonadicFold m s) where
   ask = returnA
   {-# INLINE ask #-}
-  local f ma = f ^>> ma 
+  local f ma = f ^>> ma
   {-# INLINE local #-}
 
 instance MonadPlus (ReifiedMonadicFold m s) where
