diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,4 +1,12 @@
-pandoc-citeproc 0.14.2
+pandoc-citeproc (0.14.3)
+
+  * Fixed other-modules in cabal.
+  * Semigroup instances for Literal and CLabel.
+  * Use NoImplicitPrelude with custom prelude.
+    This allows ghci to work.
+  * stack.yaml - depend on released pandoc.
+
+pandoc-citeproc (0.14.2)
 
   * Use custom Prelude to handle Monoid/Semigroup transition.
   * Add Semigroup instance for Formatting (API change).
diff --git a/compat/Text/CSL/Compat/Pandoc.hs b/compat/Text/CSL/Compat/Pandoc.hs
--- a/compat/Text/CSL/Compat/Pandoc.hs
+++ b/compat/Text/CSL/Compat/Pandoc.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE CPP, ScopedTypeVariables #-}
+{-# LANGUAGE CPP, ScopedTypeVariables, NoImplicitPrelude #-}
 -- | Compatibility module to work around differences in the
 -- types of functions between pandoc < 2.0 and pandoc >= 2.0.
 module Text.CSL.Compat.Pandoc (
@@ -13,6 +13,7 @@
   fetchItem,
   pipeProcess ) where
 
+import Prelude
 import qualified Control.Exception as E
 import System.Exit (ExitCode)
 import Data.ByteString.Lazy as BL
diff --git a/pandoc-citeproc.cabal b/pandoc-citeproc.cabal
--- a/pandoc-citeproc.cabal
+++ b/pandoc-citeproc.cabal
@@ -1,5 +1,5 @@
 name:               pandoc-citeproc
-version:            0.14.2
+version:            0.14.3
 cabal-version:      >= 1.12
 synopsis:           Supports using pandoc with citeproc
 
@@ -80,7 +80,7 @@
   default:     False
 
 library
-    hs-source-dirs:   src, prelude, compat
+    hs-source-dirs:   src, compat
     exposed-modules:  Text.CSL.Pandoc
                       Text.CSL
                       Text.CSL.Reference
@@ -101,7 +101,6 @@
                       Text.CSL.Output.Plain
                       Text.CSL.Data
     other-modules:    Text.CSL.Util
-                      Prelude
                       Paths_pandoc_citeproc
                       Text.CSL.Compat.Pandoc
     ghc-options:      -funbox-strict-fields -Wall -fno-warn-unused-do-bind
@@ -119,13 +118,14 @@
                       data-default,
                       setenv >= 0.1 && < 0.2,
                       split, yaml >= 0.8.8.7
-    if !impl(ghc >= 8.0)
+    if impl(ghc < 8.0)
       build-depends: semigroups == 0.18.*
-    if impl(ghc < 7.6)
-       build-depends: ghc-prim
-
+    if impl(ghc < 8.4)
+      hs-source-dirs: prelude
+      other-modules:  Prelude
+      build-depends:  base-compat >= 0.9
     default-language: Haskell2010
-    default-extensions: CPP
+    default-extensions: CPP, NoImplicitPrelude
 
     if flag(debug)
        build-depends:   pretty-show
@@ -153,7 +153,7 @@
 
 executable pandoc-citeproc
     main-is:          pandoc-citeproc.hs
-    hs-source-dirs:   ., prelude
+    hs-source-dirs:   .
     ghc-options:      -funbox-strict-fields -Wall
     ghc-prof-options: -fprof-auto-exported -rtsopts
     build-depends:    base >= 4, pandoc-citeproc,
@@ -162,23 +162,25 @@
                       aeson,
                       aeson-pretty >= 0.8, yaml, bytestring, syb, attoparsec, text,
                       filepath
-    if !impl(ghc >= 8.0)
+    if impl(ghc < 8.0)
       build-depends: semigroups == 0.18.*
+    if impl(ghc < 8.4)
+      hs-source-dirs: prelude
+      other-modules:  Prelude
+      build-depends:  base-compat >= 0.9
     other-modules:    Paths_pandoc_citeproc
-                      Prelude
     default-language: Haskell2010
+    default-extensions: CPP, NoImplicitPrelude
     ghc-options:      -funbox-strict-fields -Wall -fno-warn-unused-do-bind -threaded
     if flag(static)
        ld-options:     -static
     if flag(bibutils)
-       default-extensions: CPP
        cpp-options:     -DUSE_BIBUTILS
 
 executable test-citeproc
   Main-Is:        test-citeproc.hs
   Other-Modules:  JSON
-                  Prelude
-  Hs-Source-Dirs: tests, prelude, compat
+  Hs-Source-Dirs: tests, compat
   if flag(test_citeproc)
     Buildable:    True
   else
@@ -189,25 +191,34 @@
                   filepath, containers,
                   bytestring, pandoc-citeproc, process, temporary >= 1.1,
                   yaml >= 0.8.8.7, containers >= 0.4, vector >= 0.10
-  if !impl(ghc >= 8.0)
+  if impl(ghc < 8.0)
     build-depends: semigroups == 0.18.*
+  if impl(ghc < 8.4)
+    hs-source-dirs: prelude
+    other-modules:  Prelude
+    build-depends:  base-compat >= 0.9
   ghc-options:    -funbox-strict-fields -Wall -fno-warn-unused-do-bind -threaded
   default-language: Haskell2010
+  default-extensions: CPP, NoImplicitPrelude
   other-modules:  Text.CSL.Compat.Pandoc
 
 test-suite test-pandoc-citeproc
   Type:           exitcode-stdio-1.0
   Main-Is:        test-pandoc-citeproc.hs
   Other-Modules:  JSON
-                  Prelude
-  Hs-Source-Dirs: tests, prelude, compat
+  Hs-Source-Dirs: tests, compat
   build-depends:  base >= 4, aeson, directory, text,
                   pandoc-types >= 1.17.3 && < 1.18, mtl,
                   pandoc >= 1.16 && < 2.2, filepath, containers,
                   bytestring, pandoc-citeproc, process, temporary >= 1.1,
                   yaml >= 0.8.8.7
   ghc-options:    -funbox-strict-fields -Wall -fno-warn-unused-do-bind -threaded
-  if !impl(ghc >= 8.0)
+  if impl(ghc < 8.0)
     build-depends: semigroups == 0.18.*
+  if impl(ghc < 8.4)
+    hs-source-dirs: prelude
+    other-modules:  Prelude
+    build-depends:  base-compat >= 0.9
   default-language: Haskell2010
+  default-extensions: CPP, NoImplicitPrelude
   other-modules:  Text.CSL.Compat.Pandoc
diff --git a/pandoc-citeproc.hs b/pandoc-citeproc.hs
--- a/pandoc-citeproc.hs
+++ b/pandoc-citeproc.hs
@@ -1,6 +1,8 @@
 {-# LANGUAGE CPP                 #-}
+{-# LANGUAGE NoImplicitPrelude   #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 module Main where
+import           Prelude
 import           Control.Applicative              (many, (<|>))
 import           Control.Exception                as E
 import           Control.Monad
diff --git a/prelude/Prelude.hs b/prelude/Prelude.hs
--- a/prelude/Prelude.hs
+++ b/prelude/Prelude.hs
@@ -1,17 +1,17 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE PackageImports #-}
 {-# LANGUAGE CPP #-}
 
+-- The intent is that this Prelude provide the API of
+-- the base 4.11 Prelude in a way that is portable for
+-- all base versions.
+
 module Prelude
 (
-  module P
-, Monoid(..)
+  module Prelude.Compat
 , Semigroup(..)
-, Applicative(..)
 )
 where
 
-import "base" Prelude as P
+import Prelude.Compat
 import Data.Semigroup (Semigroup(..))  -- includes (<>)
-#if MIN_VERSION_base(4,11,0)
-import Data.Monoid (Monoid(..))
-#endif
diff --git a/src/Text/CSL.hs b/src/Text/CSL.hs
--- a/src/Text/CSL.hs
+++ b/src/Text/CSL.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Text.CSL
diff --git a/src/Text/CSL/Data.hs b/src/Text/CSL/Data.hs
--- a/src/Text/CSL/Data.hs
+++ b/src/Text/CSL/Data.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE CPP                #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 -----------------------------------------------------------------------------
@@ -21,6 +22,7 @@
     , langBase
     ) where
 
+import Prelude
 import qualified Control.Exception      as E
 import qualified Data.ByteString.Lazy   as L
 import           Data.Typeable
diff --git a/src/Text/CSL/Data/Embedded.hs b/src/Text/CSL/Data/Embedded.hs
--- a/src/Text/CSL/Data/Embedded.hs
+++ b/src/Text/CSL/Data/Embedded.hs
@@ -1,7 +1,9 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE TemplateHaskell #-}
 
 module Text.CSL.Data.Embedded (localeFiles, defaultCSL, manpage, license)
 where
+import Prelude
 import qualified Data.ByteString.Char8 as S
 import           Data.FileEmbed
 
diff --git a/src/Text/CSL/Eval.hs b/src/Text/CSL/Eval.hs
--- a/src/Text/CSL/Eval.hs
+++ b/src/Text/CSL/Eval.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE FlexibleContexts    #-}
 {-# LANGUAGE PatternGuards       #-}
 {-# LANGUAGE ScopedTypeVariables #-}
@@ -22,6 +23,7 @@
     , module Text.CSL.Eval.Output
     ) where
 
+import Prelude
 import           Control.Arrow
 import qualified Control.Exception      as E
 import           Control.Monad.State
diff --git a/src/Text/CSL/Eval/Common.hs b/src/Text/CSL/Eval/Common.hs
--- a/src/Text/CSL/Eval/Common.hs
+++ b/src/Text/CSL/Eval/Common.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE PatternGuards #-}
 #if MIN_VERSION_base(4,9,0)
 {-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
@@ -18,6 +19,7 @@
 
 module Text.CSL.Eval.Common where
 
+import Prelude
 import           Control.Arrow       ((&&&), (>>>))
 import           Control.Monad.State
 import           Data.Char           (toLower)
diff --git a/src/Text/CSL/Eval/Date.hs b/src/Text/CSL/Eval/Date.hs
--- a/src/Text/CSL/Eval/Date.hs
+++ b/src/Text/CSL/Eval/Date.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE PatternGuards #-}
 -----------------------------------------------------------------------------
 -- |
@@ -15,6 +16,7 @@
 
 module Text.CSL.Eval.Date where
 
+import Prelude
 import qualified Control.Exception      as E
 import           Control.Monad.State
 
diff --git a/src/Text/CSL/Eval/Names.hs b/src/Text/CSL/Eval/Names.hs
--- a/src/Text/CSL/Eval/Names.hs
+++ b/src/Text/CSL/Eval/Names.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE PatternGuards    #-}
 -----------------------------------------------------------------------------
@@ -16,6 +17,7 @@
 
 module Text.CSL.Eval.Names where
 
+import Prelude
 import           Control.Monad.State
 import           Data.Char              (isLetter, isLower, isUpper)
 import           Data.List              (intersperse, nub)
diff --git a/src/Text/CSL/Eval/Output.hs b/src/Text/CSL/Eval/Output.hs
--- a/src/Text/CSL/Eval/Output.hs
+++ b/src/Text/CSL/Eval/Output.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE PatternGuards #-}
 -----------------------------------------------------------------------------
 -- |
@@ -15,6 +16,7 @@
 
 module Text.CSL.Eval.Output where
 
+import Prelude
 import           Data.Char              (toLower, toUpper)
 import           Data.Maybe             (mapMaybe)
 import           Data.String            (fromString)
diff --git a/src/Text/CSL/Exception.hs b/src/Text/CSL/Exception.hs
--- a/src/Text/CSL/Exception.hs
+++ b/src/Text/CSL/Exception.hs
@@ -1,6 +1,8 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 
 module Text.CSL.Exception (CiteprocException(..), renderError) where
+import Prelude
 import           Control.Exception (Exception)
 import           Data.Data
 
diff --git a/src/Text/CSL/Input/Bibtex.hs b/src/Text/CSL/Input/Bibtex.hs
--- a/src/Text/CSL/Input/Bibtex.hs
+++ b/src/Text/CSL/Input/Bibtex.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# OPTIONS_GHC -fno-warn-unused-do-bind #-}
@@ -21,6 +22,7 @@
     )
     where
 
+import Prelude
 import           Control.Applicative
 import qualified Control.Exception      as E
 import           Control.Monad
diff --git a/src/Text/CSL/Input/Bibutils.hs b/src/Text/CSL/Input/Bibutils.hs
--- a/src/Text/CSL/Input/Bibutils.hs
+++ b/src/Text/CSL/Input/Bibutils.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE CPP                      #-}
 {-# LANGUAGE ScopedTypeVariables      #-}
 {-# LANGUAGE PatternGuards            #-}
@@ -20,6 +21,7 @@
     , convertRefs
     ) where
 
+import Prelude
 import qualified Control.Exception      as E
 import           Data.Aeson
 import qualified Data.ByteString.Lazy   as BL
diff --git a/src/Text/CSL/Output/Pandoc.hs b/src/Text/CSL/Output/Pandoc.hs
--- a/src/Text/CSL/Output/Pandoc.hs
+++ b/src/Text/CSL/Output/Pandoc.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 
 {-# LANGUAGE PatternGuards      #-}
 -----------------------------------------------------------------------------
@@ -25,6 +26,7 @@
     , toCapital
     ) where
 
+import Prelude
 import           Data.Maybe             (fromMaybe)
 import           Text.CSL.Style
 import           Text.CSL.Util          (headInline, initInline, lastInline,
diff --git a/src/Text/CSL/Output/Plain.hs b/src/Text/CSL/Output/Plain.hs
--- a/src/Text/CSL/Output/Plain.hs
+++ b/src/Text/CSL/Output/Plain.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 
 -----------------------------------------------------------------------------
 -- |
@@ -17,6 +18,7 @@
     ( renderPlain
     ) where
 
+import Prelude
 import           Text.CSL.Compat.Pandoc (writePlain)
 import           Text.CSL.Style
 import           Text.Pandoc            (Block (Plain), Pandoc (..), nullMeta)
diff --git a/src/Text/CSL/Pandoc.hs b/src/Text/CSL/Pandoc.hs
--- a/src/Text/CSL/Pandoc.hs
+++ b/src/Text/CSL/Pandoc.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE CPP                 #-}
 {-# LANGUAGE FlexibleInstances   #-}
 {-# LANGUAGE OverloadedStrings   #-}
@@ -6,6 +7,7 @@
 module Text.CSL.Pandoc (processCites, processCites')
 where
 
+import Prelude
 import           Control.Applicative      ((<|>))
 import qualified Control.Exception        as E
 import           Control.Monad
diff --git a/src/Text/CSL/Parser.hs b/src/Text/CSL/Parser.hs
--- a/src/Text/CSL/Parser.hs
+++ b/src/Text/CSL/Parser.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 -----------------------------------------------------------------------------
@@ -16,6 +17,7 @@
 module Text.CSL.Parser (readCSLFile, parseCSL, parseCSL',
                         parseLocale, localizeCSL)
 where
+import Prelude
 import qualified Control.Exception      as E
 import           Control.Monad          (when)
 import qualified Data.ByteString.Lazy   as L
diff --git a/src/Text/CSL/Proc.hs b/src/Text/CSL/Proc.hs
--- a/src/Text/CSL/Proc.hs
+++ b/src/Text/CSL/Proc.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE FlexibleContexts  #-}
 {-# LANGUAGE PatternGuards     #-}
@@ -18,6 +19,7 @@
 
 module Text.CSL.Proc where
 
+import Prelude
 import           Control.Applicative    ((<|>))
 import           Control.Arrow          (second, (&&&), (>>>))
 import           Control.Monad.State    (execState, modify)
diff --git a/src/Text/CSL/Proc/Collapse.hs b/src/Text/CSL/Proc/Collapse.hs
--- a/src/Text/CSL/Proc/Collapse.hs
+++ b/src/Text/CSL/Proc/Collapse.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE PatternGuards #-}
 -----------------------------------------------------------------------------
 -- |
@@ -16,6 +17,7 @@
 
 module Text.CSL.Proc.Collapse where
 
+import Prelude
 import           Control.Arrow          (second, (&&&), (>>>))
 import           Data.Char
 import           Data.List              (groupBy, sortBy)
diff --git a/src/Text/CSL/Proc/Disamb.hs b/src/Text/CSL/Proc/Disamb.hs
--- a/src/Text/CSL/Proc/Disamb.hs
+++ b/src/Text/CSL/Proc/Disamb.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE PatternGuards #-}
 #if MIN_VERSION_base(4,9,0)
 {-# OPTIONS_GHC -fno-warn-redundant-constraints #-}
@@ -21,6 +22,7 @@
 
 module Text.CSL.Proc.Disamb where
 
+import Prelude
 import           Control.Arrow      (second, (&&&), (>>>))
 import           Data.List          (elemIndex, find, findIndex, groupBy,
                                      isPrefixOf, mapAccumL, nub, nubBy, sortBy)
diff --git a/src/Text/CSL/Reference.hs b/src/Text/CSL/Reference.hs
--- a/src/Text/CSL/Reference.hs
+++ b/src/Text/CSL/Reference.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE CPP                        #-}
 {-# LANGUAGE DeriveDataTypeable         #-}
 {-# LANGUAGE DeriveGeneric              #-}
@@ -55,6 +56,7 @@
                           )
 where
 
+import Prelude
 import           Control.Applicative ((<|>))
 import           Control.Monad       (guard, mplus, msum)
 import           Data.Aeson          hiding (Value)
@@ -84,7 +86,7 @@
 import qualified Text.Parsec.String  as P
 
 newtype Literal = Literal { unLiteral :: String }
-  deriving ( Show, Read, Eq, Data, Typeable, Monoid, Generic )
+  deriving ( Show, Read, Eq, Data, Typeable, Semigroup, Monoid, Generic )
 
 instance AddYaml Literal
   where x &= (Literal y) = x &= (T.pack y)
@@ -385,11 +387,7 @@
 instance ToYaml CNum where
   toYaml r = Y.string (T.pack $ show $ unCNum r)
 
-newtype CLabel = CLabel { unCLabel :: String } deriving ( Show, Read, Eq, Typeable, Data, Generic )
-
-instance Monoid CLabel where
-    mempty = CLabel mempty
-    mappend (CLabel a) (CLabel b) = CLabel (mappend a b)
+newtype CLabel = CLabel { unCLabel :: String } deriving ( Show, Read, Eq, Typeable, Data, Generic, Semigroup, Monoid )
 
 instance FromJSON CLabel where
   parseJSON x = CLabel `fmap` parseString x
diff --git a/src/Text/CSL/Style.hs b/src/Text/CSL/Style.hs
--- a/src/Text/CSL/Style.hs
+++ b/src/Text/CSL/Style.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE CPP                        #-}
 {-# LANGUAGE DeriveDataTypeable         #-}
 {-# LANGUAGE DeriveGeneric              #-}
@@ -92,6 +93,7 @@
                       )
 where
 
+import Prelude
 import           Control.Applicative    ((<|>), (<$>))
 import           Control.Arrow          hiding (left, right)
 import           Control.Monad          (mplus)
diff --git a/src/Text/CSL/Util.hs b/src/Text/CSL/Util.hs
--- a/src/Text/CSL/Util.hs
+++ b/src/Text/CSL/Util.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE FlexibleContexts      #-}
 {-# LANGUAGE FlexibleInstances     #-}
 {-# LANGUAGE MultiParamTypeClasses #-}
@@ -50,6 +51,7 @@
   , parseRomanNumeral
   , isRange
   ) where
+import Prelude
 import           Control.Monad.State
 import           Data.Aeson
 import           Data.Aeson.Types    (Parser)
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -8,21 +8,22 @@
     static: false
 packages:
 - '.'
-- location: '../pandoc'
-  extra-dep: true
 extra-deps:
 - rfc5051-0.1.0.3
-#- pandoc-2.1.3
+- pandoc-2.1.3
 - texmath-0.10.1.1
 - tagsoup-0.14.6
 - pandoc-types-1.17.4.2
-- hslua-0.9.5
+- hslua-0.9.5.1
 - skylighting-0.7.0.2
 - skylighting-core-0.7.0.2
 - xml-conduit-1.8.0
-- conduit-1.3.0
+- conduit-1.3.0.2
 - conduit-extra-1.3.0
 - resourcet-1.2.0
+- cmark-gfm-0.1.3
+- haddock-library-1.5.0.1
+- hslua-module-text-0.1.2.1
 ghc-options:
    "$locals": -fhide-source-paths
-resolver: lts-10.4
+resolver: lts-10.10
diff --git a/tests/JSON.hs b/tests/JSON.hs
--- a/tests/JSON.hs
+++ b/tests/JSON.hs
@@ -1,6 +1,8 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 -- ToJSON/FromJSON instances for Style
 module JSON where
+import Prelude
 import           Data.Aeson
 import qualified Data.ByteString.Lazy as L
 import qualified Data.Text.Encoding   as T
diff --git a/tests/test-citeproc.hs b/tests/test-citeproc.hs
--- a/tests/test-citeproc.hs
+++ b/tests/test-citeproc.hs
@@ -1,9 +1,11 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE CPP                  #-}
 {-# LANGUAGE FlexibleInstances    #-}
 {-# LANGUAGE OverloadedStrings    #-}
 {-# LANGUAGE ScopedTypeVariables  #-}
 {-# LANGUAGE TypeSynonymInstances #-}
 
+import Prelude
 import qualified Control.Exception      as E
 import           Control.Monad
 import           Data.Aeson
diff --git a/tests/test-pandoc-citeproc.hs b/tests/test-pandoc-citeproc.hs
--- a/tests/test-pandoc-citeproc.hs
+++ b/tests/test-pandoc-citeproc.hs
@@ -1,6 +1,8 @@
+{-# LANGUAGE NoImplicitPrelude #-}
 {-# LANGUAGE CPP                 #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 module Main where
+import Prelude
 import qualified Data.Aeson             as Aeson
 import           Data.List              (isSuffixOf)
 import           Data.Maybe             (fromMaybe)
