diff --git a/attoparsec-data.cabal b/attoparsec-data.cabal
--- a/attoparsec-data.cabal
+++ b/attoparsec-data.cabal
@@ -1,5 +1,5 @@
 name: attoparsec-data
-version: 1.0.4.1
+version: 1.0.5
 category: Parsing
 synopsis: Parsers for the standard Haskell data types
 homepage: https://github.com/nikita-volkov/attoparsec-data
@@ -21,12 +21,12 @@
   other-modules:
     Attoparsec.Data.Explicit
     Attoparsec.Data.Implicit
+    Attoparsec.Data.Parsers
     Attoparsec.Data.Prelude
   build-depends:
     attoparsec ==0.13.*,
     attoparsec-time >=1 && <1.1,
-    base <5,
-    base-prelude <2,
+    base >=4.11 && <5,
     bytestring >=0.10 && <0.11,
     scientific >=0.2 && <0.4,
     text >=1 && <2,
diff --git a/library/Attoparsec/Data/Explicit.hs b/library/Attoparsec/Data/Explicit.hs
--- a/library/Attoparsec/Data/Explicit.hs
+++ b/library/Attoparsec/Data/Explicit.hs
@@ -10,6 +10,7 @@
   A.scientific,
   string,
   uuid,
+  D.show,
   -- * Time
   B.timeOfDayInISO8601,
   B.dayInISO8601,
@@ -24,6 +25,7 @@
 import qualified Data.Attoparsec.Text as A
 import qualified Attoparsec.Time.Text as B
 import qualified Data.Text.Encoding as C
+import qualified Attoparsec.Data.Parsers as D
 import qualified Data.UUID as Uuid
 
 
diff --git a/library/Attoparsec/Data/Parsers.hs b/library/Attoparsec/Data/Parsers.hs
new file mode 100644
--- /dev/null
+++ b/library/Attoparsec/Data/Parsers.hs
@@ -0,0 +1,57 @@
+{-|
+Lower-level parsers, which avoid overriding the native Attoparsec names.
+-}
+module Attoparsec.Data.Parsers where
+
+import Attoparsec.Data.Prelude hiding (bool)
+import Data.Attoparsec.Text
+import qualified GHC.Show
+import qualified Data.Text as Text
+
+{-|
+Parse the output of the 'show' function applied to 'String' or 'Text'
+into what was used for its input.
+-}
+show :: Parser Text
+show =
+  char '"' *> body <* char '"'
+  where
+    body =
+      mconcat <$> many chunk
+      where
+        chunk =
+          escaped <|> nonEscaped
+        nonEscaped =
+          takeWhile1 (\ a -> a /= '\\' && a /= '"')
+        escaped =
+          Text.singleton <$> escapedChar
+
+-- https://hackage.haskell.org/package/base-4.14.0.0/docs/src/GHC.Show.html#showLitChar
+escapedChar :: Parser Char
+escapedChar =
+  char '\\' *> escapedCharBody
+
+escapedCharBody :: Parser Char
+escapedCharBody =
+  char '\\' <|>
+  char 'a' $> '\a' <|>
+  char 'b' $> '\b' <|>
+  char 'f' $> '\f' <|>
+  char 'n' $> '\n' <|>
+  char 'r' $> '\r' <|>
+  char 't' $> '\t' <|>
+  char 'v' $> '\v' <|>
+  string "DEL" $> '\DEL' <|>
+  ordEscapedCharBody <|>
+  asciiTabEscapedCharBody
+
+asciiTabEscapedCharBody :: Parser Char
+asciiTabEscapedCharBody =
+  zipWith asciiTabChar [0..] GHC.Show.asciiTab & asum
+  where
+    asciiTabChar index chars =
+      string (fromString chars) $> chr index
+
+ordEscapedCharBody :: Parser Char
+ordEscapedCharBody =
+  chr <$> decimal
diff --git a/library/Attoparsec/Data/Prelude.hs b/library/Attoparsec/Data/Prelude.hs
--- a/library/Attoparsec/Data/Prelude.hs
+++ b/library/Attoparsec/Data/Prelude.hs
@@ -5,9 +5,74 @@
 where
 
 
--- base-prelude
+-- base
 -------------------------
-import BasePrelude as Exports
+import Control.Applicative as Exports
+import Control.Arrow as Exports hiding (first, second)
+import Control.Category as Exports
+import Control.Concurrent as Exports
+import Control.Exception as Exports
+import Control.Monad as Exports hiding (fail, mapM_, sequence_, forM_, msum, mapM, sequence, forM)
+import Control.Monad.IO.Class as Exports
+import Control.Monad.Fail as Exports
+import Control.Monad.Fix as Exports hiding (fix)
+import Control.Monad.ST as Exports
+import Data.Bifunctor as Exports
+import Data.Bits as Exports
+import Data.Bool as Exports
+import Data.Char as Exports
+import Data.Coerce as Exports
+import Data.Complex as Exports
+import Data.Data as Exports
+import Data.Dynamic as Exports
+import Data.Either as Exports
+import Data.Fixed as Exports
+import Data.Foldable as Exports hiding (toList)
+import Data.Function as Exports hiding (id, (.))
+import Data.Functor as Exports
+import Data.Functor.Compose as Exports
+import Data.Int as Exports
+import Data.IORef as Exports
+import Data.Ix as Exports
+import Data.List as Exports hiding (sortOn, isSubsequenceOf, uncons, concat, foldr, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, find, maximumBy, minimumBy, mapAccumL, mapAccumR, foldl')
+import Data.List.NonEmpty as Exports (NonEmpty(..))
+import Data.Maybe as Exports
+import Data.Monoid as Exports hiding (Alt)
+import Data.Ord as Exports
+import Data.Proxy as Exports
+import Data.Ratio as Exports
+import Data.STRef as Exports
+import Data.String as Exports
+import Data.Traversable as Exports
+import Data.Tuple as Exports
+import Data.Unique as Exports
+import Data.Version as Exports
+import Data.Void as Exports
+import Data.Word as Exports
+import Debug.Trace as Exports
+import Foreign.ForeignPtr as Exports
+import Foreign.Ptr as Exports
+import Foreign.StablePtr as Exports
+import Foreign.Storable as Exports
+import GHC.Conc as Exports hiding (orElse, withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)
+import GHC.Exts as Exports (IsList(..), lazy, inline, sortWith, groupWith)
+import GHC.Generics as Exports (Generic)
+import GHC.IO.Exception as Exports
+import Numeric as Exports
+import Prelude as Exports hiding (fail, concat, foldr, mapM_, sequence_, foldl1, maximum, minimum, product, sum, all, and, any, concatMap, elem, foldl, foldr1, notElem, or, mapM, sequence, id, (.))
+import System.Environment as Exports
+import System.Exit as Exports
+import System.IO as Exports (Handle, hClose)
+import System.IO.Error as Exports
+import System.IO.Unsafe as Exports
+import System.Mem as Exports
+import System.Mem.StableName as Exports
+import System.Timeout as Exports
+import Text.ParserCombinators.ReadP as Exports (ReadP, ReadS, readP_to_S, readS_to_P)
+import Text.ParserCombinators.ReadPrec as Exports (ReadPrec, readPrec_to_P, readP_to_Prec, readPrec_to_S, readS_to_Prec)
+import Text.Printf as Exports (printf, hPrintf)
+import Text.Read as Exports (Read(..), readMaybe, readEither)
+import Unsafe.Coerce as Exports
 
 -- text
 -------------------------
