diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 0.1.6
+### [Changed]
+- Internal change; partially undid the Prelude structure implemented in [#22] and [#27], since it was causing issues (see [#32])
+
 ## 0.1.5
 ### [Added]
 - [#19] [#20] GHC 9.6 support
diff --git a/calligraphy.cabal b/calligraphy.cabal
--- a/calligraphy.cabal
+++ b/calligraphy.cabal
@@ -1,6 +1,6 @@
 cabal-version:   2.4
 name:            calligraphy
-version:         0.1.5
+version:         0.1.6
 license:         BSD-3-Clause
 build-type:      Simple
 license-file:    LICENSE
@@ -36,10 +36,6 @@
     -Wincomplete-record-updates -Wredundant-constraints
     -fhide-source-paths -Wpartial-fields
 
-  mixins:
-    base (Prelude as BasePrelude),
-    base hiding (Prelude)
-
 library
   import:          common-options
   hs-source-dirs:  src
@@ -58,12 +54,12 @@
     Calligraphy.Phases.Render.GraphViz
     Calligraphy.Phases.Render.Mermaid
     Calligraphy.Phases.Search
+    Calligraphy.Prelude
     Calligraphy.Util.Lens
     Calligraphy.Util.LexTree
     Calligraphy.Util.Optparse
     Calligraphy.Util.Printer
     Calligraphy.Util.Types
-    Prelude
 
   build-depends:
     , array
diff --git a/src/Calligraphy.hs b/src/Calligraphy.hs
--- a/src/Calligraphy.hs
+++ b/src/Calligraphy.hs
@@ -14,6 +14,7 @@
 import Calligraphy.Phases.Render.GraphViz
 import Calligraphy.Phases.Render.Mermaid
 import Calligraphy.Phases.Search
+import Calligraphy.Prelude
 import Calligraphy.Util.Printer
 import Calligraphy.Util.Types (ppCallGraph)
 import Data.IORef
diff --git a/src/Calligraphy/Compat/Debug.hs b/src/Calligraphy/Compat/Debug.hs
--- a/src/Calligraphy/Compat/Debug.hs
+++ b/src/Calligraphy/Compat/Debug.hs
@@ -8,6 +8,7 @@
   )
 where
 
+import Calligraphy.Prelude
 import Calligraphy.Util.Printer
 import qualified Data.Map as Map
 
diff --git a/src/Calligraphy/Compat/GHC.hs b/src/Calligraphy/Compat/GHC.hs
--- a/src/Calligraphy/Compat/GHC.hs
+++ b/src/Calligraphy/Compat/GHC.hs
@@ -44,6 +44,8 @@
   )
 where
 
+import Calligraphy.Prelude
+
 #if MIN_VERSION_ghc(9,6,0)
 import Language.Haskell.Syntax.Module.Name (moduleNameString, ModuleName)
 #elif MIN_VERSION_ghc(9,0,0)
diff --git a/src/Calligraphy/Compat/Lib.hs b/src/Calligraphy/Compat/Lib.hs
--- a/src/Calligraphy/Compat/Lib.hs
+++ b/src/Calligraphy/Compat/Lib.hs
@@ -19,10 +19,11 @@
 where
 
 import qualified Calligraphy.Compat.GHC as GHC
+import Calligraphy.Prelude
 import Calligraphy.Util.Lens
 import Data.IORef
-import qualified Data.Set as Set
 import qualified Data.Map as Map
+import qualified Data.Set as Set
 
 #if MIN_VERSION_ghc(9,4,0)
 
diff --git a/src/Calligraphy/Phases/DependencyFilter.hs b/src/Calligraphy/Phases/DependencyFilter.hs
--- a/src/Calligraphy/Phases/DependencyFilter.hs
+++ b/src/Calligraphy/Phases/DependencyFilter.hs
@@ -11,8 +11,10 @@
   )
 where
 
-import Prelude hiding (Decl, DeclType, Node, filter)
-
+import Calligraphy.Prelude hiding (Decl, DeclType, Node, filter)
+import Calligraphy.Util.Optparse (boolFlags)
+import Calligraphy.Util.Printer
+import Calligraphy.Util.Types
 import Control.Monad.State.Strict
 import Data.Bifunctor (bimap)
 import Data.EnumMap (EnumMap)
@@ -29,10 +31,6 @@
 import qualified Data.Tree as Tree
 import Data.Tuple (swap)
 import Options.Applicative
-
-import Calligraphy.Util.Optparse (boolFlags)
-import Calligraphy.Util.Printer
-import Calligraphy.Util.Types
 
 data DependencyFilterConfig = DependencyFilterConfig
   { _depRoot :: Maybe (NonEmpty String),
diff --git a/src/Calligraphy/Phases/EdgeCleanup.hs b/src/Calligraphy/Phases/EdgeCleanup.hs
--- a/src/Calligraphy/Phases/EdgeCleanup.hs
+++ b/src/Calligraphy/Phases/EdgeCleanup.hs
@@ -3,14 +3,13 @@
 -- | This modules collects some opinionated common-sense heuristics for removing edges that are probably redundant.
 module Calligraphy.Phases.EdgeCleanup (EdgeCleanupConfig, cleanupEdges, pEdgeCleanupConfig) where
 
-import Prelude hiding (Node, Decl)
+import Calligraphy.Prelude hiding (Decl, Node)
+import Calligraphy.Util.Types (CallGraph (CallGraph), Decl (..), DeclType (..), Key, forT_, modForest)
 import Control.Monad.State.Strict
 import Data.Set (Set)
+import qualified Data.Set as Set
 import Data.Tree
 import Options.Applicative
-import qualified Data.Set as Set
-
-import Calligraphy.Util.Types (CallGraph(CallGraph), Decl(..), Key, DeclType(..), forT_, modForest)
 
 data EdgeCleanupConfig = EdgeCleanupConfig
   { cleanDoubles :: Bool,
diff --git a/src/Calligraphy/Phases/NodeFilter.hs b/src/Calligraphy/Phases/NodeFilter.hs
--- a/src/Calligraphy/Phases/NodeFilter.hs
+++ b/src/Calligraphy/Phases/NodeFilter.hs
@@ -13,22 +13,21 @@
 -- This is not actually a huge deal, because no other module actually cares about the node type, but it's something to watch out for.
 -- There's more design discussion on https://github.com/jonascarpay/calligraphy/pull/5
 module Calligraphy.Phases.NodeFilter
-  ( filterNodes
-  , NodeFilterConfig (..)
-  , pNodeFilterConfig
-  ) where
-
-import Prelude hiding (Decl)
+  ( filterNodes,
+    NodeFilterConfig (..),
+    pNodeFilterConfig,
+  )
+where
 
+import Calligraphy.Prelude hiding (Decl)
+import Calligraphy.Util.Types
 import Control.Monad.State
 import Data.EnumMap (EnumMap)
+import qualified Data.EnumMap as EnumMap
 import Data.Maybe (catMaybes)
 import Data.Tree (Tree)
 import qualified Data.Tree as Tree
 import Options.Applicative
-import qualified Data.EnumMap as EnumMap
-
-import Calligraphy.Util.Types
 
 data Mode = Show | Collapse | Hide
   deriving (Eq, Show)
diff --git a/src/Calligraphy/Phases/Parse.hs b/src/Calligraphy/Phases/Parse.hs
--- a/src/Calligraphy/Phases/Parse.hs
+++ b/src/Calligraphy/Phases/Parse.hs
@@ -12,8 +12,14 @@
   )
 where
 
-import Prelude hiding (Decl, DeclType)
-
+import qualified Calligraphy.Compat.GHC as GHC
+import Calligraphy.Compat.Lib (isDerivingNode, isInlineNode, isInstanceNode, isMinimalNode, isTypeSignatureNode, mergeSpans, sourceInfo)
+import qualified Calligraphy.Compat.Lib as GHC
+import Calligraphy.Prelude hiding (Decl, DeclType)
+import Calligraphy.Util.LexTree (LexTree, TreeError (..), foldLexTree)
+import qualified Calligraphy.Util.LexTree as LT
+import Calligraphy.Util.Printer
+import Calligraphy.Util.Types (CallGraph (..), Decl (..), DeclType (..), GHCKey (..), Key (..), Loc (..), Module (..), forT_, forestT, over, rekeyCalls)
 import Control.Monad.Except
 import Control.Monad.State
 import Data.Array (Array)
@@ -32,14 +38,6 @@
 import qualified Data.Set as Set
 import Data.Tree (Forest)
 import qualified Data.Tree as Tree
-
-import qualified Calligraphy.Compat.GHC as GHC
-import Calligraphy.Compat.Lib (isDerivingNode, isInlineNode, isInstanceNode, isMinimalNode, isTypeSignatureNode, mergeSpans, sourceInfo)
-import qualified Calligraphy.Compat.Lib as GHC
-import Calligraphy.Util.LexTree (LexTree, TreeError (..), foldLexTree)
-import qualified Calligraphy.Util.LexTree as LT
-import Calligraphy.Util.Printer
-import Calligraphy.Util.Types (GHCKey(..), Loc(..), DeclType(..), Decl(..), Key(..), CallGraph(..), Module(..), rekeyCalls, forestT, over, forT_)
 
 -- | A declaration extracted from the source code.
 --
diff --git a/src/Calligraphy/Phases/Render/Common.hs b/src/Calligraphy/Phases/Render/Common.hs
--- a/src/Calligraphy/Phases/Render/Common.hs
+++ b/src/Calligraphy/Phases/Render/Common.hs
@@ -16,7 +16,6 @@
   )
 where
 
-import Prelude hiding (Decl, DeclType)
 import Calligraphy.Util.Printer (Prints, strLn)
 import Calligraphy.Util.Types (CallGraph (..), Decl (..), DeclType, GHCKey (unGHCKey), Key (..), Loc (..), Module (..))
 import Control.Applicative ((<|>))
diff --git a/src/Calligraphy/Phases/Render/GraphViz.hs b/src/Calligraphy/Phases/Render/GraphViz.hs
--- a/src/Calligraphy/Phases/Render/GraphViz.hs
+++ b/src/Calligraphy/Phases/Render/GraphViz.hs
@@ -9,9 +9,8 @@
   )
 where
 
-import Prelude hiding (DeclType)
-
 import Calligraphy.Phases.Render.Common
+import Calligraphy.Prelude hiding (DeclType)
 import Calligraphy.Util.Printer
 import Calligraphy.Util.Types
 import Data.List (intercalate)
diff --git a/src/Calligraphy/Phases/Render/Mermaid.hs b/src/Calligraphy/Phases/Render/Mermaid.hs
--- a/src/Calligraphy/Phases/Render/Mermaid.hs
+++ b/src/Calligraphy/Phases/Render/Mermaid.hs
@@ -5,8 +5,8 @@
   )
 where
 
-import Prelude hiding (Node, Decl, DeclType)
 import Calligraphy.Phases.Render.Common
+import Calligraphy.Prelude hiding (Decl, DeclType, Node)
 import Calligraphy.Util.Printer
 import Calligraphy.Util.Types
 import Control.Monad.State (State, execState, modify)
diff --git a/src/Calligraphy/Phases/Search.hs b/src/Calligraphy/Phases/Search.hs
--- a/src/Calligraphy/Phases/Search.hs
+++ b/src/Calligraphy/Phases/Search.hs
@@ -9,6 +9,7 @@
 
 import qualified Calligraphy.Compat.GHC as GHC
 import Calligraphy.Compat.Lib
+import Calligraphy.Prelude
 import Control.Applicative
 import Data.List.NonEmpty (NonEmpty (..), nonEmpty, toList)
 import Options.Applicative hiding (str)
diff --git a/src/Calligraphy/Prelude.hs b/src/Calligraphy/Prelude.hs
new file mode 100644
--- /dev/null
+++ b/src/Calligraphy/Prelude.hs
@@ -0,0 +1,38 @@
+{-# LANGUAGE CPP #-}
+module Calligraphy.Prelude
+  ( module Control.Monad
+  , module Data.Either
+  , module Data.Foldable
+  , module Data.List
+  , module Data.Monoid
+#if MIN_VERSION_ghc(9,0,0)
+  , module GHC.Iface.Ext.Binary
+  , module GHC.Iface.Ext.Types
+  , module GHC.Types.Name.Cache
+  , module GHC.Types.SrcLoc
+  , module GHC.Utils.Outputable
+#else
+  , module HieBin
+  , module HieTypes
+  , module NameCache
+  , module SrcLoc
+#endif
+  ) where
+
+import Control.Monad
+import Data.Either
+import Data.Foldable hiding (toList)
+import Data.List (last, (++), replicate, zip, filter, isPrefixOf)
+import Data.Monoid (Monoid, mempty, mconcat, mappend, Ap(..))
+#if MIN_VERSION_ghc(9,0,0)
+import GHC.Iface.Ext.Binary
+import GHC.Iface.Ext.Types
+import GHC.Types.Name.Cache
+import GHC.Types.SrcLoc
+import GHC.Utils.Outputable (ppr, showSDocUnsafe)
+#else
+import HieBin
+import HieTypes
+import NameCache
+import SrcLoc
+#endif
diff --git a/src/Calligraphy/Util/Printer.hs b/src/Calligraphy/Util/Printer.hs
--- a/src/Calligraphy/Util/Printer.hs
+++ b/src/Calligraphy/Util/Printer.hs
@@ -13,6 +13,7 @@
   )
 where
 
+import Calligraphy.Prelude
 import Control.Monad.RWS
 import Data.Text (Text)
 import qualified Data.Text.Lazy as TL
diff --git a/src/Calligraphy/Util/Types.hs b/src/Calligraphy/Util/Types.hs
--- a/src/Calligraphy/Util/Types.hs
+++ b/src/Calligraphy/Util/Types.hs
@@ -24,7 +24,7 @@
   )
 where
 
-import Prelude hiding (Decl, DeclType, Node)
+import Calligraphy.Prelude hiding (Decl, DeclType, Node)
 import Calligraphy.Util.Lens
 import Calligraphy.Util.Printer
 import Data.Bitraversable (bitraverse)
diff --git a/src/Prelude.hs b/src/Prelude.hs
deleted file mode 100644
--- a/src/Prelude.hs
+++ /dev/null
@@ -1,41 +0,0 @@
-{-# LANGUAGE CPP #-}
-module Prelude 
-  ( module P
-  , module Control.Monad
-  , module Data.Either
-  , module Data.Foldable
-  , module Data.List
-  , module Data.Monoid
-#if MIN_VERSION_ghc(9,0,0)
-  , module GHC.Iface.Ext.Binary
-  , module GHC.Iface.Ext.Types
-  , module GHC.Types.Name.Cache
-  , module GHC.Types.SrcLoc
-  , module GHC.Utils.Outputable 
-#else
-  , module HieBin
-  , module HieTypes
-  , module NameCache
-  , module SrcLoc
-#endif
-  ) where
-
-import Control.Monad
-import Data.Either
-import Data.Foldable hiding (toList)
-import Data.List (last, (++), replicate, zip, filter, isPrefixOf)
-import Data.Monoid (Monoid, mempty, mconcat, mappend, Ap(..))
-import qualified BasePrelude as P 
-import BasePrelude
-#if MIN_VERSION_ghc(9,0,0)
-import GHC.Iface.Ext.Binary
-import GHC.Iface.Ext.Types
-import GHC.Types.Name.Cache
-import GHC.Types.SrcLoc
-import GHC.Utils.Outputable (ppr, showSDocUnsafe)
-#else
-import HieBin
-import HieTypes
-import NameCache
-import SrcLoc
-#endif
diff --git a/test/Test/LexTree.hs b/test/Test/LexTree.hs
--- a/test/Test/LexTree.hs
+++ b/test/Test/LexTree.hs
@@ -1,10 +1,11 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE TypeApplications #-}
-{-# LANGUAGE CPP #-}
 {-# OPTIONS_GHC -Wno-orphans #-}
 
 module Test.LexTree where
 
+import Calligraphy.Prelude
 import Calligraphy.Util.LexTree
 import qualified Data.Foldable as Foldable
 import Data.Maybe (fromMaybe, isJust)
