diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,7 @@
+# 0.2.1
+
+- Support GHC-8.6.5...9.10.1
+
 # 0.2
 
 **Complete rewrite**.
diff --git a/src/Data/Function/Step.hs b/src/Data/Function/Step.hs
--- a/src/Data/Function/Step.hs
+++ b/src/Data/Function/Step.hs
@@ -1,28 +1,9 @@
-{-# LANGUAGE CPP               #-}
 {-# LANGUAGE DeriveFoldable    #-}
 {-# LANGUAGE DeriveFunctor     #-}
 {-# LANGUAGE DeriveTraversable #-}
 
 {-# LANGUAGE Safe              #-}
 
-#ifndef MIN_VERSION_transformers
-#define MIN_VERSION_transformers(x,y,z) 0
-#endif
-
-#ifndef MIN_VERSION_transformers_compat
-#define MIN_VERSION_transformers_compat(x,y,z) 0
-#endif
-
-#if MIN_VERSION_base(4,9,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-
-#elif MIN_VERSION_transformers(0,5,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-
-#elif MIN_VERSION_transformers_compat(0,5,0) && !MIN_VERSION_transformers(0,4,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#endif
-
 module Data.Function.Step (
     -- * Step Function
     -- $setup
@@ -59,11 +40,7 @@
 import Data.Semigroup   (Semigroup (..))
 import Data.Traversable (Traversable (traverse))
 
-#ifdef LIFTED_FUNCTOR_CLASSES
 import Text.Show (showListWith)
-#else
-import Prelude (showChar, showParen, showString)
-#endif
 
 import qualified Data.Map        as Map
 import qualified Test.QuickCheck as QC
@@ -207,8 +184,6 @@
 -- Show
 -------------------------------------------------------------------------------
 
-#if LIFTED_FUNCTOR_CLASSES
-
 instance Show2 SF where
     liftShowsPrec2 spk slk spv slv d (SF m v) = showsBinaryWith
         (\_ -> showListWith $ liftShowsPrec2 (liftShowsPrec spk slk) (liftShowList spk slk) spv slv 0)
@@ -225,19 +200,6 @@
     liftShowsPrec sp _ d (Open k)   = showsUnaryWith sp "Open"   d k
     liftShowsPrec sp _ d (Closed k) = showsUnaryWith sp "Closed" d k
 
-#else
-
-instance (Show k, Show v) => Show (SF k v) where
-    showsPrec d (SF m v) = showParen (d > 10)
-        $ showString "fromList"
-        . showsPrec 11 (Map.toList m)
-        . showChar ' '
-        . showsPrec 11 v
-
-instance Show k => Show1 (SF k) where showsPrec1 = showsPrec
-instance Show1 Bound where showsPrec1 = showsPrec
-
-#endif
 -------------------------------------------------------------------------------
 -- Helpers
 -------------------------------------------------------------------------------
diff --git a/src/Data/Function/Step/Discrete/Closed.hs b/src/Data/Function/Step/Discrete/Closed.hs
--- a/src/Data/Function/Step/Discrete/Closed.hs
+++ b/src/Data/Function/Step/Discrete/Closed.hs
@@ -1,28 +1,9 @@
-{-# LANGUAGE CPP               #-}
 {-# LANGUAGE DeriveFoldable    #-}
 {-# LANGUAGE DeriveFunctor     #-}
 {-# LANGUAGE DeriveTraversable #-}
 
 {-# LANGUAGE Safe              #-}
 
-#ifndef MIN_VERSION_transformers
-#define MIN_VERSION_transformers(x,y,z) 0
-#endif
-
-#ifndef MIN_VERSION_transformers_compat
-#define MIN_VERSION_transformers_compat(x,y,z) 0
-#endif
-
-#if MIN_VERSION_base(4,9,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-
-#elif MIN_VERSION_transformers(0,5,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-
-#elif MIN_VERSION_transformers_compat(0,5,0) && !MIN_VERSION_transformers(0,4,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#endif
-
 module Data.Function.Step.Discrete.Closed (
     -- * Step Function
     -- $setup
@@ -62,11 +43,7 @@
 import Data.Semigroup   (Semigroup (..))
 import Data.Traversable (Traversable)
 
-#ifdef LIFTED_FUNCTOR_CLASSES
 import Text.Show (showListWith)
-#else
-import Prelude (showChar, showParen, showString)
-#endif
 
 import qualified Data.Function.Step as SF
 import qualified Data.Map           as Map
@@ -152,7 +129,6 @@
 -- Show
 -------------------------------------------------------------------------------
 
-#if LIFTED_FUNCTOR_CLASSES
 instance Show2 SF where
     liftShowsPrec2 spk slk spv slv d (SF m v) = showsBinaryWith
         (\_ -> showListWith $ liftShowsPrec2 spk slk spv slv 0)
@@ -164,19 +140,6 @@
 
 instance (Show k, Show v) => Show (SF k v) where
     showsPrec = showsPrec2
-
-#else
-
-instance (Show k, Show v) => Show (SF k v) where
-    showsPrec d (SF m v) = showParen (d > 10)
-        $ showString "fromList"
-        . showsPrec 11 (Map.toList m)
-        . showChar ' '
-        . showsPrec 11 v
-
-instance Show k => Show1 (SF k) where showsPrec1 = showsPrec
-
-#endif
 
 -------------------------------------------------------------------------------
 -- Helpers
diff --git a/src/Data/Function/Step/Discrete/Open.hs b/src/Data/Function/Step/Discrete/Open.hs
--- a/src/Data/Function/Step/Discrete/Open.hs
+++ b/src/Data/Function/Step/Discrete/Open.hs
@@ -1,28 +1,9 @@
-{-# LANGUAGE CPP               #-}
 {-# LANGUAGE DeriveFoldable    #-}
 {-# LANGUAGE DeriveFunctor     #-}
 {-# LANGUAGE DeriveTraversable #-}
 
 {-# LANGUAGE Safe              #-}
 
-#ifndef MIN_VERSION_transformers
-#define MIN_VERSION_transformers(x,y,z) 0
-#endif
-
-#ifndef MIN_VERSION_transformers_compat
-#define MIN_VERSION_transformers_compat(x,y,z) 0
-#endif
-
-#if MIN_VERSION_base(4,9,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-
-#elif MIN_VERSION_transformers(0,5,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-
-#elif MIN_VERSION_transformers_compat(0,5,0) && !MIN_VERSION_transformers(0,4,0)
-#define LIFTED_FUNCTOR_CLASSES 1
-#endif
-
 module Data.Function.Step.Discrete.Open (
     -- * Step Function
     -- $setup
@@ -62,11 +43,7 @@
 import Data.Semigroup   (Semigroup (..))
 import Data.Traversable (Traversable)
 
-#ifdef LIFTED_FUNCTOR_CLASSES
 import Text.Show (showListWith)
-#else
-import Prelude (showChar, showParen, showString)
-#endif
 
 import qualified Data.Function.Step as SF
 import qualified Data.Map           as Map
@@ -152,7 +129,6 @@
 -- Show
 -------------------------------------------------------------------------------
 
-#if LIFTED_FUNCTOR_CLASSES
 instance Show2 SF where
     liftShowsPrec2 spk slk spv slv d (SF m v) = showsBinaryWith
         (\_ -> showListWith $ liftShowsPrec2 spk slk spv slv 0)
@@ -164,19 +140,6 @@
 
 instance (Show k, Show v) => Show (SF k v) where
     showsPrec = showsPrec2
-
-#else
-
-instance (Show k, Show v) => Show (SF k v) where
-    showsPrec d (SF m v) = showParen (d > 10)
-        $ showString "fromList"
-        . showsPrec 11 (Map.toList m)
-        . showChar ' '
-        . showsPrec 11 v
-
-instance Show k => Show1 (SF k) where showsPrec1 = showsPrec
-
-#endif
 
 -------------------------------------------------------------------------------
 -- Helpers
diff --git a/step-function.cabal b/step-function.cabal
--- a/step-function.cabal
+++ b/step-function.cabal
@@ -1,6 +1,6 @@
-cabal-version:      >=1.10
+cabal-version:      2.2
 name:               step-function
-version:            0.2.0.1
+version:            0.2.1
 synopsis:           Staircase functions or piecewise constant functions
 category:           Text
 description:
@@ -15,7 +15,7 @@
   Oleg Grenrus <oleg.grenrus@iki.fi>, Petter Bergman <jon.petter.bergman@gmail.com>
 
 maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
-license:            BSD3
+license:            BSD-3-Clause
 license-file:       LICENSE
 build-type:         Simple
 extra-source-files:
@@ -23,19 +23,15 @@
   README.md
 
 tested-with:
-  GHC ==7.6.3
-   || ==7.8.4
-   || ==7.10.3
-   || ==8.0.2
-   || ==8.2.2
-   || ==8.4.4
-   || ==8.6.5
+  GHC ==8.6.5
    || ==8.8.4
    || ==8.10.7
    || ==9.0.2
-   || ==9.2.7
-   || ==9.4.4
-   || ==9.6.1
+   || ==9.2.8
+   || ==9.4.8
+   || ==9.6.6
+   || ==9.8.2
+   || ==9.10.1
 
 source-repository head
   type:     git
@@ -46,25 +42,10 @@
   ghc-options:      -Wall
   hs-source-dirs:   src
   build-depends:
-      base        >=4.6     && <4.19
-    , containers  >=0.5.0.0 && <0.7
-    , deepseq     >=1.3.0.1 && <1.5
-    , QuickCheck  >=2.11.3  && <2.15
-
-  if !impl(ghc >=8.0)
-    build-depends: semigroups >=0.18.4 && <0.20
-
-  if !impl(ghc >=8.0)
-    -- We enforce the fact that with GHC-7.10
-    -- we have at least transformers-0.4.2.0 (the bundled one)
-    -- which has 'Data.Functor.Classes' module. (transformers-0.3 doesn't have)
-    if impl(ghc >=7.10)
-      build-depends: transformers >=0.4.2.0 && <0.7
-
-    else
-      build-depends:
-          transformers         >=0.3.0.0 && <0.7
-        , transformers-compat  >=0.6.2   && <0.8
+    , base        >=4.12.0.0 && <4.21
+    , containers  >=0.5.0.0  && <0.8
+    , deepseq     >=1.4.4.0  && <1.6
+    , QuickCheck  >=2.14.5   && <2.16
 
   other-extensions:
     DeriveFoldable
@@ -82,7 +63,7 @@
   type:             exitcode-stdio-1.0
   main-is:          Merge.hs
   build-depends:
-      base
+    , base
     , QuickCheck
     , step-function
 
