diff --git a/Prolude.hs b/Prolude.hs
--- a/Prolude.hs
+++ b/Prolude.hs
@@ -1,4 +1,4 @@
-{- | 
+{- |
 Module: Prolude
 Description: A custom prelude built by the ITProTV engineers.
 Copyright: Copyright (c) 2020 EdutainmentLIVE, LLC
diff --git a/Prolude/Aws.hs b/Prolude/Aws.hs
--- a/Prolude/Aws.hs
+++ b/Prolude/Aws.hs
@@ -6,7 +6,7 @@
     -- * Alias functions
   , sendAws
   )
-where 
+where
 
 import Network.AWS (MonadAWS, liftAWS)
 import qualified Network.AWS as Aws
diff --git a/Prolude/Core.hs b/Prolude/Core.hs
--- a/Prolude/Core.hs
+++ b/Prolude/Core.hs
@@ -8,6 +8,7 @@
     -- * Base re-exports
   , module Data.Bool
   , module Data.Bifunctor
+  , module Data.Coerce
   , module Data.Either
   , module Data.Eq
   , module Data.Foldable
diff --git a/Prolude/Csv.hs b/Prolude/Csv.hs
--- a/Prolude/Csv.hs
+++ b/Prolude/Csv.hs
@@ -14,7 +14,7 @@
   )
 where
 
-import Data.Csv 
+import Data.Csv
     ( DefaultOrdered
     , ToNamedRecord
     )
diff --git a/Prolude/Esqueleto.hs b/Prolude/Esqueleto.hs
--- a/Prolude/Esqueleto.hs
+++ b/Prolude/Esqueleto.hs
@@ -1,11 +1,11 @@
-module Prolude.Esqueleto 
+module Prolude.Esqueleto
   ( -- * Esqueleto re-exports
     -- $esqueleto
     module Database.Esqueleto.Experimental
-  ) 
+  )
 where
 
-import Database.Esqueleto.Experimental 
+import Database.Esqueleto.Experimental
   ( (=.)
   , (==.)
   , (!=.)
diff --git a/Prolude/Exception.hs b/Prolude/Exception.hs
--- a/Prolude/Exception.hs
+++ b/Prolude/Exception.hs
@@ -9,8 +9,6 @@
   )
 where
 
-import Prolude.Core
-
 import qualified Control.Exception as UnsafeException
 import Control.Exception.Safe hiding (catchIO, throwM)
 
diff --git a/Prolude/Lens.hs b/Prolude/Lens.hs
--- a/Prolude/Lens.hs
+++ b/Prolude/Lens.hs
@@ -1,4 +1,4 @@
-module Prolude.Lens 
+module Prolude.Lens
     ( module Control.Lens
     )
 where
diff --git a/Prolude/Maybe.hs b/Prolude/Maybe.hs
--- a/Prolude/Maybe.hs
+++ b/Prolude/Maybe.hs
@@ -5,7 +5,7 @@
   )
 where
 
-import Data.Maybe 
+import Data.Maybe
     ( Maybe(Just, Nothing)
     , catMaybes
     , fromMaybe
diff --git a/Prolude/Monad.hs b/Prolude/Monad.hs
--- a/Prolude/Monad.hs
+++ b/Prolude/Monad.hs
@@ -1,9 +1,9 @@
-module Prolude.Monad 
-  ( module Control.Monad 
+module Prolude.Monad
+  ( module Control.Monad
   )
 where
 
-import Control.Monad 
+import Control.Monad
     ( forever
     , forM
     , forM_
diff --git a/Prolude/MongoDB.hs b/Prolude/MongoDB.hs
--- a/Prolude/MongoDB.hs
+++ b/Prolude/MongoDB.hs
@@ -56,8 +56,6 @@
   )
 where
 
-import Prolude.Core
-
 import Database.MongoDB (ObjectId, UpdateOption(MultiUpdate), fval, genObjectId, (=:))
 import qualified Control.Monad.IO.Class as Monad
 import qualified Data.Int as Int
diff --git a/Prolude/Persist.hs b/Prolude/Persist.hs
--- a/Prolude/Persist.hs
+++ b/Prolude/Persist.hs
@@ -1,4 +1,4 @@
-module Prolude.Persist 
+module Prolude.Persist
   ( -- * Persist re-exports
     -- | These are our re-exports from Persist. They include: Entity(..), SqlType(..), exists, insert, insertMany_, and selectList
     module Database.Persist
@@ -13,7 +13,7 @@
   , module Database.Persist.Sql
   ) where
 
-import Database.Persist 
+import Database.Persist
   ( Entity(..)
   , SqlType(..)
   , exists
diff --git a/Prolude/Prim.hs b/Prolude/Prim.hs
--- a/Prolude/Prim.hs
+++ b/Prolude/Prim.hs
@@ -7,7 +7,7 @@
   , Int16
   , Int32
   , Int64
-  ) 
+  )
 where
 
 import Data.Word (Word8, Word16, Word32, Word64)
diff --git a/Prolude/Servant.hs b/Prolude/Servant.hs
--- a/Prolude/Servant.hs
+++ b/Prolude/Servant.hs
@@ -8,7 +8,7 @@
   )
 where
 
-import Servant.API 
+import Servant.API
   ( (:<|>)((:<|>))
   , (:>)
   , Delete
diff --git a/Prolude/Swagger.hs b/Prolude/Swagger.hs
--- a/Prolude/Swagger.hs
+++ b/Prolude/Swagger.hs
@@ -9,7 +9,7 @@
   -- * Functions
   , defaultDeclareNamedSchema
   , nameSchema
-  ) 
+  )
 where
 
 import qualified Data.Swagger as Swagger
diff --git a/Prolude/Test.hs b/Prolude/Test.hs
--- a/Prolude/Test.hs
+++ b/Prolude/Test.hs
@@ -3,7 +3,7 @@
 {-# LANGUAGE MonoLocalBinds #-}
 {-# LANGUAGE UndecidableInstances #-}
 
-module Prolude.Test 
+module Prolude.Test
   ( -- * QuickCheck re-exports
     module Test.QuickCheck
     -- * Type
diff --git a/Prolude/Uri.hs b/Prolude/Uri.hs
--- a/Prolude/Uri.hs
+++ b/Prolude/Uri.hs
@@ -1,4 +1,4 @@
-module Prolude.Uri 
+module Prolude.Uri
   ( -- $conversions
     -- * Type alias
     Uri
diff --git a/Prolude/Uuid.hs b/Prolude/Uuid.hs
--- a/Prolude/Uuid.hs
+++ b/Prolude/Uuid.hs
@@ -1,4 +1,4 @@
-module Prolude.Uuid 
+module Prolude.Uuid
   ( -- * Type alias
     Uuid
     -- * Functions
@@ -15,7 +15,6 @@
 import qualified Data.UUID as UUID
 import qualified Data.UUID.V4 as UUID
 import qualified Data.Word as Word
-import qualified System.IO as IO
 
 type Uuid = UUID.UUID
 
diff --git a/prolude.cabal b/prolude.cabal
--- a/prolude.cabal
+++ b/prolude.cabal
@@ -1,7 +1,7 @@
 cabal-version: >= 1.10
 
 name: prolude
-version: 0.0.0.22
+version: 0.0.0.23
 synopsis: ITProTV's custom prelude
 description:
     Prolude is ITProTV's custom prelude.
@@ -17,6 +17,10 @@
     type: git
     location: https://github.com/EdutainmentLIVE/prolude
 
+flag pedantic
+    default: False
+    manual: True
+
 library
     default-language: Haskell2010
 
@@ -73,3 +77,15 @@
         , uuid >= 1.3.13 && < 1.4
         , vector >= 0.12.1 && < 0.13
         , witch >= 0.3.4 && < 0.4
+
+    ghc-options:
+        -Weverything
+        -Wno-implicit-prelude
+        -Wno-missing-import-lists
+        -Wno-missing-safe-haskell-mode
+        -Wno-prepositive-qualified-module
+        -Wno-safe
+        -Wno-unsafe
+
+    if flag(pedantic)
+        ghc-options: -Werror
