diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+0.2.20230609
+------------
+
+Build with `optparse-applicative-0.18`:
+PR [#4](https://github.com/andreasabel/cabal-clean/pull/4) by Sanchayan Maity.
+
 0.2.20220819
 ------------
 
diff --git a/cabal-clean.cabal b/cabal-clean.cabal
--- a/cabal-clean.cabal
+++ b/cabal-clean.cabal
@@ -1,7 +1,7 @@
 cabal-version:       >=1.10
 
 name:                cabal-clean
-version:             0.2.20220819
+version:             0.2.20230609
 synopsis:            Remove outdated cabal build artefacts from `dist-newstyle`.
 
 description:         Simple command line tool to remove cabal build artefacts
@@ -24,19 +24,20 @@
                      README.md
 
 tested-with:
-  GHC == 8.0.2
-  GHC == 8.2.2
-  GHC == 8.4.4
-  GHC == 8.6.5
-  GHC == 8.8.4
-  GHC == 8.10.7
+  GHC == 9.6.2
+  GHC == 9.4.5
+  GHC == 9.2.8
   GHC == 9.0.2
-  GHC == 9.2.4
-  GHC == 9.4.1
+  GHC == 8.10.7
+  GHC == 8.8.4
+  GHC == 8.6.5
+  GHC == 8.4.4
+  GHC == 8.2.2
+  GHC == 8.0.2
 
 source-repository head
   type:     git
-  location: git://github.com/andreasabel/cabal-clean.git
+  location: https://github.com/andreasabel/cabal-clean.git
 
 executable cabal-clean
   main-is:             Main.hs
@@ -61,8 +62,8 @@
     , filepath
     -- , filepath == 1.4.*
     , mtl
-    , optparse-applicative
-    -- , optparse-applicative >= 0.13 && < 0.16
+    -- missing Semigroup instances with optparse-applicative-0.12
+    , optparse-applicative >= 0.13
     -- pretty-terminal-0.1.0.0 has base >= 4.9
     , pretty-terminal
     , process
@@ -74,30 +75,9 @@
   default-language:    Haskell2010
 
   default-extensions:
-    -- BangPatterns
-    -- ConstraintKinds
-    -- DefaultSignatures
-    -- DeriveDataTypeable
-    -- DeriveFoldable
-    -- DeriveFunctor
-    -- DeriveTraversable
-    -- ExistentialQuantification
-    -- FlexibleContexts
-    -- FlexibleInstances
-    -- FunctionalDependencies
-    -- InstanceSigs
     LambdaCase
-    -- MultiParamTypeClasses
-    -- MultiWayIf
-    -- NamedFieldPuns
-    -- OverloadedStrings
-    -- PatternSynonyms
-    -- RankNTypes
     RecordWildCards
-    -- ScopedTypeVariables
-    -- StandaloneDeriving
     TupleSections
-    -- TypeSynonymInstances
 
   ghc-options:
     -Wall
diff --git a/src/DiscoverGHCs.hs b/src/DiscoverGHCs.hs
--- a/src/DiscoverGHCs.hs
+++ b/src/DiscoverGHCs.hs
@@ -3,7 +3,7 @@
 module DiscoverGHCs where
 
 import Control.Exception
-  ( evaluate )  
+  ( evaluate )
 import System.FilePath
   ( getSearchPath, stripExtension, takeFileName )
 import System.FilePath.Find
diff --git a/src/Main.hs b/src/Main.hs
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -15,7 +15,7 @@
   , info, infoOption, long, metavar, short, strArgument, switch, value
   )
 import Options.Applicative.Help.Pretty
-  ( vcat, text )
+  ( vcat, pretty )
 
 import System.Console.Pretty
   ( supportsPretty )
@@ -163,7 +163,7 @@
       <> help (concat ["The root of the build tree. Default: ", show defaultRoot, "."])
 
   -- Note: @header@ does not respect line breaks, so we need @headerDoc@.
-  header = Just $ vcat $ map text
+  header = Just $ vcat $ map pretty
     [ unwords [ versionText, homepage ]
     , ""
     , concat
@@ -179,7 +179,7 @@
     , ""
     , "Limitation: Only GHC is recognized as Haskell compiler, and only in the form 'ghc-VERSION' (not just 'ghc')."
     ]
-  footer = Just $ vcat $ map (text . unwords)
+  footer = Just $ vcat $ map (pretty . unwords)
     [ [ unwords ["Without option --delete,", self, "does not actually clean out anything,"]
       , "just shows prefixed with '---' and in red what would be removed and prefixed with '+++' and in green what is kept."
       ]
