diff --git a/library/PostgreSQL/Binary/Decoding.hs b/library/PostgreSQL/Binary/Decoding.hs
--- a/library/PostgreSQL/Binary/Decoding.hs
+++ b/library/PostgreSQL/Binary/Decoding.hs
@@ -257,7 +257,7 @@
     exception input =
       \case
         Text.DecodeError _ _ -> fromString ("Failed to decode the following bytes in UTF-8: " <> show input)
-        _ -> $bug "Unexpected unicode exception"
+        _ -> error "Unexpected unicode exception"
 
 -- |
 -- Any of the variable-length character types:
@@ -272,7 +272,7 @@
     exception input =
       \case
         Text.DecodeError _ _ -> fromString ("Failed to decode the following bytes in UTF-8: " <> show input)
-        _ -> $bug "Unexpected unicode exception"
+        _ -> error "Unexpected unicode exception"
 
 -- |
 -- BYTEA or any other type in its undecoded form.
diff --git a/library/PostgreSQL/Binary/Prelude.hs b/library/PostgreSQL/Binary/Prelude.hs
--- a/library/PostgreSQL/Binary/Prelude.hs
+++ b/library/PostgreSQL/Binary/Prelude.hs
@@ -5,17 +5,81 @@
   ByteStringBuilder,
   LazyText,
   TextBuilder,
-  bug,
-  bottom,
   mapLeft,
   joinMap,
 )
 where
 
 
--- base-prelude
+-- base
 -------------------------
-import BasePrelude as Exports hiding (assert, Data, fail)
+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
+import Data.Function as Exports hiding (id, (.))
+import Data.Functor as Exports
+import Data.Functor.Identity 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 (Last(..), First(..), (<>))
+import Data.Ord as Exports
+import Data.Proxy as Exports
+import Data.Ratio as Exports
+import Data.Semigroup 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 hiding (sizeOf, alignment)
+import GHC.Conc as Exports hiding (orElse, withMVar, threadWaitWriteSTM, threadWaitWrite, threadWaitReadSTM, threadWaitRead)
+import GHC.Exts as Exports (lazy, inline, sortWith, groupWith, IsList(fromList, Item))
+import GHC.Generics as Exports (Generic, Generic1)
+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
+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
 
 -- transformers
 -------------------------
@@ -56,21 +120,12 @@
 -------------------------
 import Data.Map.Strict as Exports (Map)
 
--- placeholders
--------------------------
-import Development.Placeholders as Exports
-
--- loch-th
--------------------------
-import Debug.Trace.LocationTH as Exports
-
 -- custom
 -------------------------
 import qualified Data.ByteString.Lazy
 import qualified Data.ByteString.Builder
 import qualified Data.Text.Lazy
 import qualified Data.Text.Lazy.Builder
-import qualified Debug.Trace.LocationTH
 
 
 type LazyByteString =
@@ -85,12 +140,6 @@
 type TextBuilder =
   Data.Text.Lazy.Builder.Builder
 
-
-bug = [e| $(Debug.Trace.LocationTH.failure) . (msg <>) |]
-  where
-    msg = "A \"postgresql-binary\" package bug: " :: String
-
-bottom = [e| $bug "Bottom evaluated" |]
 
 {-# INLINE mapLeft #-}
 mapLeft :: (a -> b) -> Either a x -> Either b x
diff --git a/postgresql-binary.cabal b/postgresql-binary.cabal
--- a/postgresql-binary.cabal
+++ b/postgresql-binary.cabal
@@ -1,7 +1,7 @@
 name:
   postgresql-binary
 version:
-  0.12.3.3
+  0.12.4
 synopsis:
   Encoders and decoders for the PostgreSQL's binary format
 description:
@@ -34,11 +34,6 @@
   Simple
 cabal-version:
   >=1.10
-tested-with:
-  GHC==7.6.1,
-  GHC==7.8.1,
-  GHC==7.10.1,
-  GHC==8.0.1
 
 source-repository head
   type:
@@ -69,28 +64,20 @@
     PostgreSQL.Binary.Inet
     PostgreSQL.Binary.BuilderPrim
   build-depends:
-    -- parsing:
-    binary-parser >=0.5.6 && <0.6,
-    -- building:
-    bytestring-strict-builder >=0.4.5.3 && <0.5,
-    -- data:
-    aeson >=0.9 && <2,
-    uuid ==1.3.*,
-    time >=1.4 && <2,
-    scientific >=0.2 && <0.4,
+    aeson >=1.5 && <2,
+    base >=4.12 && <5,
+    binary-parser >=0.5.7 && <0.6,
     bytestring >=0.10.4 && <0.12,
-    text >=1 && <2,
-    vector >=0.10 && <0.13,
-    network-ip >=0.2 && <1,
-    unordered-containers ==0.2.*,
+    bytestring-strict-builder >=0.4.5.4 && <0.5,
     containers >=0.5 && <0.7,
-    -- errors:
-    loch-th ==0.2.*,
-    placeholders ==0.1.*,
-    -- general:
+    network-ip >=0.3 && <0.4,
+    scientific >=0.3 && <0.4,
+    text >=1.2 && <2,
+    time >=1.9 && <2,
     transformers >=0.3 && <0.6,
-    base-prelude >=1.4 && <2,
-    base >=4.9 && <5
+    unordered-containers ==0.2.*,
+    uuid ==1.3.*,
+    vector >=0.12 && <0.13
 
 -- This test-suite must be executed in a single-thread.
 test-suite tasty
@@ -114,26 +101,20 @@
   default-language:
     Haskell2010
   build-depends:
-    -- testing:
-    postgresql-binary,
-    postgresql-libpq ==0.9.*,
-    QuickCheck >=2.10 && <3,
-    quickcheck-instances >=0.3.22 && <0.4,
-    tasty >=1.2.3 && <2,
-    tasty-hunit >=0.10 && <0.11,
-    tasty-quickcheck >=0.10 && <0.11,
-    -- data:
     aeson,
-    json-ast ==0.3.*,
     conversion ==1.*,
     conversion-bytestring ==1.*,
     conversion-text ==1.*,
+    json-ast ==0.3.*,
     network-ip >=0.2 && <1,
-    -- debugging:
-    loch-th ==0.2.*,
-    placeholders ==0.1.*,
-    -- general:
-    rerebase >=1.0.2 && <2
+    postgresql-binary,
+    postgresql-libpq ==0.9.*,
+    QuickCheck >=2.10 && <3,
+    quickcheck-instances >=0.3.22 && <0.4,
+    rerebase >=1.10.0.1 && <2,
+    tasty >=1.4 && <2,
+    tasty-hunit >=0.10 && <0.11,
+    tasty-quickcheck >=0.10 && <0.11
 
 benchmark encoding
   type: 
@@ -152,11 +133,9 @@
   default-language:
     Haskell2010
   build-depends:
+    criterion >=1.5.9 && <2,
     postgresql-binary,
-    -- benchmarking:
-    criterion >=1.0 && <2,
-    -- general:
-    rerebase <2
+    rerebase >=1.10.0.1 && <2
 
 benchmark decoding
   type: 
@@ -175,8 +154,6 @@
   default-language:
     Haskell2010
   build-depends:
+    criterion >=1.5.9 && <2,
     postgresql-binary,
-    -- benchmarking:
-    criterion >=1.0 && <2,
-    -- general:
-    rerebase <2
+    rerebase >=1.10.0.1 && <2
diff --git a/tasty/Main/Prelude.hs b/tasty/Main/Prelude.hs
--- a/tasty/Main/Prelude.hs
+++ b/tasty/Main/Prelude.hs
@@ -5,8 +5,6 @@
   ByteStringBuilder,
   LazyText,
   TextBuilder,
-  bug,
-  bottom,
 )
 where
 
@@ -21,21 +19,12 @@
 import Conversion.Text ()
 import Conversion.ByteString ()
 
--- placeholders
--------------------------
-import Development.Placeholders as Exports
-
--- loch-th
--------------------------
-import Debug.Trace.LocationTH as Exports
-
 -- custom
 -------------------------
 import qualified Data.ByteString.Lazy
 import qualified Data.ByteString.Builder
 import qualified Data.Text.Lazy
 import qualified Data.Text.Lazy.Builder
-import qualified Debug.Trace.LocationTH
 
 
 type LazyByteString =
@@ -50,9 +39,3 @@
 type TextBuilder =
   Data.Text.Lazy.Builder.Builder
 
-
-bug = [e| $(Debug.Trace.LocationTH.failure) . (msg <>) |]
-  where
-    msg = "A \"postgresql-binary\" package bug: " :: String
-
-bottom = [e| $bug "Bottom evaluated" |]
