diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,7 @@
+### 0.1.2.3
+
+- Added support for older GHC *7.8*.
+
 ### 0.1.2.2
 
 - Added Cabal flag *debug* (off by default) for printing how vim runs to
diff --git a/pandoc-vimhl.cabal b/pandoc-vimhl.cabal
--- a/pandoc-vimhl.cabal
+++ b/pandoc-vimhl.cabal
@@ -1,38 +1,39 @@
-name:                pandoc-vimhl
-version:             0.1.2.2
-synopsis:            Pandoc filter for native Vim code highlighting
-description:         Pandoc filter for native Vim code highlighting in HTML and
-        PDF documents. Requires Vim and plugin
+name:                    pandoc-vimhl
+version:                 0.1.2.3
+synopsis:                Pandoc filter for native Vim code highlighting
+description:             Pandoc filter for native Vim code highlighting
+        in HTML and PDF documents. Requires Vim and plugin
         <http://github.com/lyokha/vim-publish-helper vim-publish-helper>.
-homepage:            http://github.com/lyokha/vim-publish-helper
-license:             BSD3
-license-file:        LICENSE
-extra-source-files:  Changelog.md
-author:              Alexey Radkov <alexey.radkov@gmail.com>
-maintainer:          Alexey Radkov <alexey.radkov@gmail.com>
-copyright:           2016-2018 Alexey Radkov
-category:            Text
-build-type:          Simple
-cabal-version:       >= 1.8
+homepage:                http://github.com/lyokha/vim-publish-helper
+license:                 BSD3
+license-file:            LICENSE
+extra-source-files:      Changelog.md
+author:                  Alexey Radkov <alexey.radkov@gmail.com>
+maintainer:              Alexey Radkov <alexey.radkov@gmail.com>
+copyright:               2016-2018 Alexey Radkov
+category:                Text
+build-type:              Simple
+cabal-version:           1.20
 
 flag debug
-  description:       Enable debug support (print how vim runs to stderr)
-  default:           False
-  manual:            True
+  description:           Enable debug support (print how vim runs to stderr)
+  default:               False
+  manual:                True
 
 executable vimhl
-  build-depends:     base >= 4.7 && < 5
-                   , pandoc-types >= 1.12
-                   , directory
-                   , filepath
-                   , process
-                   , temporary >= 1.1
-                   , regex-compat
-                   , cond >= 0.2
-  extensions:        CPP
+  default-language:      Haskell2010
+  build-depends:         base >= 4.7 && < 5
+                       , pandoc-types >= 1.12
+                       , directory
+                       , filepath
+                       , process
+                       , temporary >= 1.1
+                       , regex-compat
+                       , cond >= 0.2
+  default-extensions:    CPP
 
   if flag(debug)
-    cpp-options:    -DDEBUG
+    cpp-options:        -DDEBUG
 
-  main-is:           vimhl.hs
+  main-is:               vimhl.hs
 
diff --git a/vimhl.hs b/vimhl.hs
--- a/vimhl.hs
+++ b/vimhl.hs
@@ -2,7 +2,6 @@
 
 {-# LANGUAGE CPP #-}
 
--- vimhl.hs
 import Text.Pandoc.JSON
 import Text.Regex (mkRegex, splitRegex, matchRegexAll)
 import System.IO
@@ -16,6 +15,9 @@
 import Data.Maybe (fromMaybe)
 import Control.Arrow (first, (&&&))
 import Control.Monad
+#if !MIN_VERSION_base(4,8,0)
+import Control.Applicative
+#endif
 import Control.Exception (bracket)
 import Control.Conditional hiding (unless)
 
