summaryrefslogtreecommitdiff
path: root/compiler/GHC/Core
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2020-06-26 12:58:02 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-08-12 03:50:12 -0400
commitaccbc242e555822a2060091af7188ce6e9b0144e (patch)
tree641ced97452a46a0ff17f6754d2150e283c9b9ca /compiler/GHC/Core
parentf1088b3f31ceddf918a319c97557fb1f08a9a387 (diff)
downloadhaskell-accbc242e555822a2060091af7188ce6e9b0144e.tar.gz
DynFlags: disentangle Outputable
- put panic related functions into GHC.Utils.Panic - put trace related functions using DynFlags in GHC.Driver.Ppr One step closer making Outputable fully independent of DynFlags. Bump haddock submodule
Diffstat (limited to 'compiler/GHC/Core')
-rw-r--r--compiler/GHC/Core/Class.hs1
-rw-r--r--compiler/GHC/Core/Coercion.hs6
-rw-r--r--compiler/GHC/Core/Coercion/Axiom.hs1
-rw-r--r--compiler/GHC/Core/Coercion/Opt.hs8
-rw-r--r--compiler/GHC/Core/DataCon.hs6
-rw-r--r--compiler/GHC/Core/FVs.hs5
-rw-r--r--compiler/GHC/Core/FamInstEnv.hs6
-rw-r--r--compiler/GHC/Core/InstEnv.hs8
-rw-r--r--compiler/GHC/Core/Lint.hs2
-rw-r--r--compiler/GHC/Core/Make.hs1
-rw-r--r--compiler/GHC/Core/Map.hs4
-rw-r--r--compiler/GHC/Core/Opt/Arity.hs3
-rw-r--r--compiler/GHC/Core/Opt/CSE.hs1
-rw-r--r--compiler/GHC/Core/Opt/ConstantFold.hs3
-rw-r--r--compiler/GHC/Core/Opt/DmdAnal.hs1
-rw-r--r--compiler/GHC/Core/Opt/FloatIn.hs2
-rw-r--r--compiler/GHC/Core/Opt/FloatOut.hs1
-rw-r--r--compiler/GHC/Core/Opt/Monad.hs2
-rw-r--r--compiler/GHC/Core/Opt/OccurAnal.hs3
-rw-r--r--compiler/GHC/Core/Opt/Pipeline.hs2
-rw-r--r--compiler/GHC/Core/Opt/SetLevels.hs3
-rw-r--r--compiler/GHC/Core/Opt/Simplify.hs2
-rw-r--r--compiler/GHC/Core/Opt/Simplify/Env.hs2
-rw-r--r--compiler/GHC/Core/Opt/Simplify/Utils.hs2
-rw-r--r--compiler/GHC/Core/Opt/SpecConstr.hs2
-rw-r--r--compiler/GHC/Core/Opt/Specialise.hs2
-rw-r--r--compiler/GHC/Core/Opt/StaticArgs.hs1
-rw-r--r--compiler/GHC/Core/Opt/WorkWrap.hs2
-rw-r--r--compiler/GHC/Core/Opt/WorkWrap/Utils.hs1
-rw-r--r--compiler/GHC/Core/PatSyn.hs6
-rw-r--r--compiler/GHC/Core/Ppr/TyThing.hs1
-rw-r--r--compiler/GHC/Core/Predicate.hs3
-rw-r--r--compiler/GHC/Core/Rules.hs2
-rw-r--r--compiler/GHC/Core/SimpleOpt.hs2
-rw-r--r--compiler/GHC/Core/Subst.hs3
-rw-r--r--compiler/GHC/Core/TyCo/Ppr.hs1
-rw-r--r--compiler/GHC/Core/TyCo/Rep.hs1
-rw-r--r--compiler/GHC/Core/TyCo/Subst.hs1
-rw-r--r--compiler/GHC/Core/TyCon.hs1
-rw-r--r--compiler/GHC/Core/Type.hs1
-rw-r--r--compiler/GHC/Core/Unfold.hs2
-rw-r--r--compiler/GHC/Core/UsageEnv.hs1
-rw-r--r--compiler/GHC/Core/Utils.hs3
43 files changed, 92 insertions, 19 deletions
diff --git a/compiler/GHC/Core/Class.hs b/compiler/GHC/Core/Class.hs
index 25df472486..f5d24aaf3c 100644
--- a/compiler/GHC/Core/Class.hs
+++ b/compiler/GHC/Core/Class.hs
@@ -33,6 +33,7 @@ import GHC.Types.Name
import GHC.Types.Basic
import GHC.Types.Unique
import GHC.Utils.Misc
+import GHC.Utils.Panic
import GHC.Types.SrcLoc
import GHC.Utils.Outputable
import GHC.Data.BooleanFormula (BooleanFormula, mkTrue)
diff --git a/compiler/GHC/Core/Coercion.hs b/compiler/GHC/Core/Coercion.hs
index a408373eea..6e19cbdd7a 100644
--- a/compiler/GHC/Core/Coercion.hs
+++ b/compiler/GHC/Core/Coercion.hs
@@ -139,9 +139,7 @@ import GHC.Types.Var
import GHC.Types.Var.Env
import GHC.Types.Var.Set
import GHC.Types.Name hiding ( varName )
-import GHC.Utils.Misc
import GHC.Types.Basic
-import GHC.Utils.Outputable
import GHC.Types.Unique
import GHC.Data.Pair
import GHC.Types.SrcLoc
@@ -151,6 +149,10 @@ import GHC.Data.List.SetOps
import GHC.Data.Maybe
import GHC.Types.Unique.FM
+import GHC.Utils.Misc
+import GHC.Utils.Outputable
+import GHC.Utils.Panic
+
import Control.Monad (foldM, zipWithM)
import Data.Function ( on )
import Data.Char( isDigit )
diff --git a/compiler/GHC/Core/Coercion/Axiom.hs b/compiler/GHC/Core/Coercion/Axiom.hs
index 7046273ae5..a1ace3ccfd 100644
--- a/compiler/GHC/Core/Coercion/Axiom.hs
+++ b/compiler/GHC/Core/Coercion/Axiom.hs
@@ -41,6 +41,7 @@ import GHC.Types.Unique
import GHC.Types.Var
import GHC.Utils.Misc
import GHC.Utils.Binary
+import GHC.Utils.Panic
import GHC.Data.Pair
import GHC.Types.Basic
import Data.Typeable ( Typeable )
diff --git a/compiler/GHC/Core/Coercion/Opt.hs b/compiler/GHC/Core/Coercion/Opt.hs
index bb99f93ac6..2de2089904 100644
--- a/compiler/GHC/Core/Coercion/Opt.hs
+++ b/compiler/GHC/Core/Coercion/Opt.hs
@@ -9,6 +9,8 @@ module GHC.Core.Coercion.Opt ( optCoercion, checkAxInstCo ) where
import GHC.Prelude
import GHC.Driver.Session
+import GHC.Driver.Ppr
+
import GHC.Core.TyCo.Rep
import GHC.Core.TyCo.Subst
import GHC.Core.Coercion
@@ -18,15 +20,17 @@ import GHC.Core.TyCon
import GHC.Core.Coercion.Axiom
import GHC.Types.Var.Set
import GHC.Types.Var.Env
-import GHC.Utils.Outputable
import GHC.Core.FamInstEnv ( flattenTys )
import GHC.Data.Pair
import GHC.Data.List.SetOps ( getNth )
-import GHC.Utils.Misc
import GHC.Core.Unify
import GHC.Core.InstEnv
import Control.Monad ( zipWithM )
+import GHC.Utils.Outputable
+import GHC.Utils.Misc
+import GHC.Utils.Panic
+
{-
%************************************************************************
%* *
diff --git a/compiler/GHC/Core/DataCon.hs b/compiler/GHC/Core/DataCon.hs
index 3afa8180d8..6eb9723fe7 100644
--- a/compiler/GHC/Core/DataCon.hs
+++ b/compiler/GHC/Core/DataCon.hs
@@ -78,8 +78,6 @@ import GHC.Types.Name
import GHC.Builtin.Names
import GHC.Core.Predicate
import GHC.Types.Var
-import GHC.Utils.Outputable
-import GHC.Utils.Misc
import GHC.Types.Basic
import GHC.Data.FastString
import GHC.Unit
@@ -87,6 +85,10 @@ import GHC.Utils.Binary
import GHC.Types.Unique.Set
import GHC.Types.Unique( mkAlphaTyVarUnique )
+import GHC.Utils.Outputable
+import GHC.Utils.Misc
+import GHC.Utils.Panic
+
import Data.ByteString (ByteString)
import qualified Data.ByteString.Builder as BSB
import qualified Data.ByteString.Lazy as LBS
diff --git a/compiler/GHC/Core/FVs.hs b/compiler/GHC/Core/FVs.hs
index b3fb267816..d3cbe267f6 100644
--- a/compiler/GHC/Core/FVs.hs
+++ b/compiler/GHC/Core/FVs.hs
@@ -79,10 +79,11 @@ import GHC.Core.FamInstEnv
import GHC.Builtin.Types( unrestrictedFunTyConName )
import GHC.Builtin.Types.Prim( funTyConName )
import GHC.Data.Maybe( orElse )
-import GHC.Utils.Misc
import GHC.Types.Basic( Activation )
-import GHC.Utils.Outputable
+
import GHC.Utils.FV as FV
+import GHC.Utils.Misc
+import GHC.Utils.Panic
{-
************************************************************************
diff --git a/compiler/GHC/Core/FamInstEnv.hs b/compiler/GHC/Core/FamInstEnv.hs
index a693927db4..75ad0a5574 100644
--- a/compiler/GHC/Core/FamInstEnv.hs
+++ b/compiler/GHC/Core/FamInstEnv.hs
@@ -53,11 +53,9 @@ import GHC.Types.Var.Set
import GHC.Types.Var.Env
import GHC.Types.Name
import GHC.Types.Unique.DFM
-import GHC.Utils.Outputable
import GHC.Data.Maybe
import GHC.Core.Map
import GHC.Types.Unique
-import GHC.Utils.Misc
import GHC.Types.Var
import GHC.Types.SrcLoc
import GHC.Data.FastString
@@ -65,6 +63,10 @@ import Control.Monad
import Data.List( mapAccumL )
import Data.Array( Array, assocs )
+import GHC.Utils.Misc
+import GHC.Utils.Outputable
+import GHC.Utils.Panic
+
{-
************************************************************************
* *
diff --git a/compiler/GHC/Core/InstEnv.hs b/compiler/GHC/Core/InstEnv.hs
index 74295a738f..16c40cc73d 100644
--- a/compiler/GHC/Core/InstEnv.hs
+++ b/compiler/GHC/Core/InstEnv.hs
@@ -44,15 +44,17 @@ import GHC.Types.Name
import GHC.Types.Name.Set
import GHC.Types.Unique (getUnique)
import GHC.Core.Unify
-import GHC.Utils.Outputable
-import GHC.Utils.Error
import GHC.Types.Basic
import GHC.Types.Unique.DFM
-import GHC.Utils.Misc
import GHC.Types.Id
import Data.Data ( Data )
import Data.Maybe ( isJust, isNothing )
+import GHC.Utils.Misc
+import GHC.Utils.Outputable
+import GHC.Utils.Error
+import GHC.Utils.Panic
+
{-
************************************************************************
* *
diff --git a/compiler/GHC/Core/Lint.hs b/compiler/GHC/Core/Lint.hs
index 04a839c6cd..a3582de953 100644
--- a/compiler/GHC/Core/Lint.hs
+++ b/compiler/GHC/Core/Lint.hs
@@ -64,6 +64,7 @@ import GHC.Utils.Error as Err
import GHC.Data.List.SetOps
import GHC.Builtin.Names
import GHC.Utils.Outputable as Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Utils.Misc
import GHC.Core.InstEnv ( instanceDFunId )
@@ -73,6 +74,7 @@ import GHC.Types.Demand ( splitStrictSig, isDeadEndDiv )
import GHC.Driver.Types hiding (Usage)
import GHC.Driver.Session
+import GHC.Driver.Ppr
import Control.Monad
import GHC.Utils.Monad
import Data.Foldable ( toList )
diff --git a/compiler/GHC/Core/Make.hs b/compiler/GHC/Core/Make.hs
index 7bc9c161a5..c242c776e6 100644
--- a/compiler/GHC/Core/Make.hs
+++ b/compiler/GHC/Core/Make.hs
@@ -83,6 +83,7 @@ import GHC.Data.FastString
import GHC.Types.Unique.Supply
import GHC.Types.Basic
import GHC.Utils.Misc
+import GHC.Utils.Panic
import Data.List
import Data.Char ( ord )
diff --git a/compiler/GHC/Core/Map.hs b/compiler/GHC/Core/Map.hs
index bf0b56ae40..092a5a9773 100644
--- a/compiler/GHC/Core/Map.hs
+++ b/compiler/GHC/Core/Map.hs
@@ -48,13 +48,15 @@ import GHC.Core.Type
import GHC.Core.TyCo.Rep
import GHC.Types.Var
import GHC.Data.FastString(FastString)
+
import GHC.Utils.Misc
+import GHC.Utils.Outputable
+import GHC.Utils.Panic
import qualified Data.Map as Map
import qualified Data.IntMap as IntMap
import GHC.Types.Var.Env
import GHC.Types.Name.Env
-import GHC.Utils.Outputable
import Control.Monad( (>=>) )
{-
diff --git a/compiler/GHC/Core/Opt/Arity.hs b/compiler/GHC/Core/Opt/Arity.hs
index 7891012792..829673433c 100644
--- a/compiler/GHC/Core/Opt/Arity.hs
+++ b/compiler/GHC/Core/Opt/Arity.hs
@@ -26,6 +26,8 @@ where
import GHC.Prelude
+import GHC.Driver.Ppr
+
import GHC.Core
import GHC.Core.FVs
import GHC.Core.Utils
@@ -44,6 +46,7 @@ import GHC.Types.Basic
import GHC.Types.Unique
import GHC.Driver.Session ( DynFlags, GeneralFlag(..), gopt )
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Utils.Misc ( lengthAtLeast )
diff --git a/compiler/GHC/Core/Opt/CSE.hs b/compiler/GHC/Core/Opt/CSE.hs
index 019b578db2..3f826621a6 100644
--- a/compiler/GHC/Core/Opt/CSE.hs
+++ b/compiler/GHC/Core/Opt/CSE.hs
@@ -32,6 +32,7 @@ import GHC.Utils.Outputable
import GHC.Types.Basic
import GHC.Core.Map
import GHC.Utils.Misc ( filterOut, equalLength, debugIsOn )
+import GHC.Utils.Panic
import Data.List ( mapAccumL )
{-
diff --git a/compiler/GHC/Core/Opt/ConstantFold.hs b/compiler/GHC/Core/Opt/ConstantFold.hs
index e6d23f3d0a..94d469a515 100644
--- a/compiler/GHC/Core/Opt/ConstantFold.hs
+++ b/compiler/GHC/Core/Opt/ConstantFold.hs
@@ -29,6 +29,8 @@ where
import GHC.Prelude
+import GHC.Driver.Ppr
+
import {-# SOURCE #-} GHC.Types.Id.Make ( mkPrimOpId, magicDictId )
import GHC.Core
@@ -61,6 +63,7 @@ import GHC.Data.FastString
import GHC.Types.Basic
import GHC.Platform
import GHC.Utils.Misc
+import GHC.Utils.Panic
import GHC.Core.Coercion (mkUnbranchedAxInstCo,mkSymCo,Role(..))
import Control.Applicative ( Alternative(..) )
diff --git a/compiler/GHC/Core/Opt/DmdAnal.hs b/compiler/GHC/Core/Opt/DmdAnal.hs
index e11d220773..386a417cf9 100644
--- a/compiler/GHC/Core/Opt/DmdAnal.hs
+++ b/compiler/GHC/Core/Opt/DmdAnal.hs
@@ -35,6 +35,7 @@ import GHC.Core.Type
import GHC.Core.Coercion ( Coercion, coVarsOfCo )
import GHC.Core.FamInstEnv
import GHC.Utils.Misc
+import GHC.Utils.Panic
import GHC.Data.Maybe ( isJust )
import GHC.Builtin.PrimOps
import GHC.Builtin.Types.Prim ( realWorldStatePrimTy )
diff --git a/compiler/GHC/Core/Opt/FloatIn.hs b/compiler/GHC/Core/Opt/FloatIn.hs
index 896507d77a..d539e4f386 100644
--- a/compiler/GHC/Core/Opt/FloatIn.hs
+++ b/compiler/GHC/Core/Opt/FloatIn.hs
@@ -35,7 +35,7 @@ import GHC.Core.Type
import GHC.Types.Var.Set
import GHC.Utils.Misc
import GHC.Driver.Session
-import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Types.Basic ( RecFlag(..), isRec )
{-
diff --git a/compiler/GHC/Core/Opt/FloatOut.hs b/compiler/GHC/Core/Opt/FloatOut.hs
index 479bc1a9ce..be3cd1f1c4 100644
--- a/compiler/GHC/Core/Opt/FloatOut.hs
+++ b/compiler/GHC/Core/Opt/FloatOut.hs
@@ -28,6 +28,7 @@ import GHC.Data.Bag
import GHC.Utils.Misc
import GHC.Data.Maybe
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Core.Type
import qualified Data.IntMap as M
diff --git a/compiler/GHC/Core/Opt/Monad.hs b/compiler/GHC/Core/Opt/Monad.hs
index aa651355f4..400cb00c83 100644
--- a/compiler/GHC/Core/Opt/Monad.hs
+++ b/compiler/GHC/Core/Opt/Monad.hs
@@ -78,7 +78,7 @@ import qualified Data.Map.Strict as MapStrict
import Data.Word
import Control.Monad
import Control.Applicative ( Alternative(..) )
-import GHC.Utils.Panic (throwGhcException, GhcException(..))
+import GHC.Utils.Panic (throwGhcException, GhcException(..), panic)
{-
************************************************************************
diff --git a/compiler/GHC/Core/Opt/OccurAnal.hs b/compiler/GHC/Core/Opt/OccurAnal.hs
index 12ffcbb587..0180bec651 100644
--- a/compiler/GHC/Core/Opt/OccurAnal.hs
+++ b/compiler/GHC/Core/Opt/OccurAnal.hs
@@ -20,6 +20,8 @@ module GHC.Core.Opt.OccurAnal ( occurAnalysePgm, occurAnalyseExpr ) where
import GHC.Prelude
+import GHC.Driver.Ppr
+
import GHC.Core
import GHC.Core.FVs
import GHC.Core.Utils ( exprIsTrivial, isDefaultAlt, isExpandableApp,
@@ -46,6 +48,7 @@ import GHC.Types.Unique.Set
import GHC.Utils.Misc
import GHC.Data.Maybe( orElse, isJust )
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import Data.List
{-
diff --git a/compiler/GHC/Core/Opt/Pipeline.hs b/compiler/GHC/Core/Opt/Pipeline.hs
index 76be316a3e..a9dc3ec4a5 100644
--- a/compiler/GHC/Core/Opt/Pipeline.hs
+++ b/compiler/GHC/Core/Opt/Pipeline.hs
@@ -13,6 +13,7 @@ module GHC.Core.Opt.Pipeline ( core2core, simplifyExpr ) where
import GHC.Prelude
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Core
import GHC.Driver.Types
import GHC.Core.Opt.CSE ( cseProgram )
@@ -58,6 +59,7 @@ import GHC.Runtime.Loader -- ( initializePlugins )
import GHC.Types.Unique.Supply ( UniqSupply, mkSplitUniqSupply, splitUniqSupply )
import GHC.Types.Unique.FM
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import Control.Monad
import qualified GHC.LanguageExtensions as LangExt
{-
diff --git a/compiler/GHC/Core/Opt/SetLevels.hs b/compiler/GHC/Core/Opt/SetLevels.hs
index efcf96e6df..f678433568 100644
--- a/compiler/GHC/Core/Opt/SetLevels.hs
+++ b/compiler/GHC/Core/Opt/SetLevels.hs
@@ -77,6 +77,8 @@ module GHC.Core.Opt.SetLevels (
import GHC.Prelude
+import GHC.Driver.Ppr
+
import GHC.Core
import GHC.Core.Opt.Monad ( FloatOutSwitches(..) )
import GHC.Core.Utils ( exprType, exprIsHNF
@@ -114,6 +116,7 @@ import GHC.Builtin.Names ( runRWKey )
import GHC.Types.Unique.Supply
import GHC.Utils.Misc
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Types.Unique.DFM
import GHC.Utils.FV
diff --git a/compiler/GHC/Core/Opt/Simplify.hs b/compiler/GHC/Core/Opt/Simplify.hs
index f9e9c57640..a529a8b0a4 100644
--- a/compiler/GHC/Core/Opt/Simplify.hs
+++ b/compiler/GHC/Core/Opt/Simplify.hs
@@ -15,6 +15,7 @@ import GHC.Prelude
import GHC.Platform
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Core.Opt.Simplify.Monad
import GHC.Core.Type hiding ( substTy, substTyVar, extendTvSubst, extendCvSubst )
import GHC.Core.Opt.Simplify.Env
@@ -58,6 +59,7 @@ import GHC.Types.Var ( isTyCoVar )
import GHC.Data.Maybe ( orElse )
import Control.Monad
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Utils.Misc
import GHC.Utils.Error
diff --git a/compiler/GHC/Core/Opt/Simplify/Env.hs b/compiler/GHC/Core/Opt/Simplify/Env.hs
index 237739e23c..b0245162ee 100644
--- a/compiler/GHC/Core/Opt/Simplify/Env.hs
+++ b/compiler/GHC/Core/Opt/Simplify/Env.hs
@@ -59,6 +59,7 @@ import GHC.Data.OrdList
import GHC.Types.Id as Id
import GHC.Core.Make ( mkWildValBinder )
import GHC.Driver.Session ( DynFlags )
+import GHC.Driver.Ppr
import GHC.Builtin.Types
import GHC.Core.TyCo.Rep ( TyCoBinder(..) )
import qualified GHC.Core.Type as Type
@@ -68,6 +69,7 @@ import GHC.Core.Coercion hiding ( substCo, substCoVar, substCoVarBndr )
import GHC.Types.Basic
import GHC.Utils.Monad
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Utils.Misc
import GHC.Types.Unique.FM ( pprUniqFM )
diff --git a/compiler/GHC/Core/Opt/Simplify/Utils.hs b/compiler/GHC/Core/Opt/Simplify/Utils.hs
index 210fd73701..febd937fdf 100644
--- a/compiler/GHC/Core/Opt/Simplify/Utils.hs
+++ b/compiler/GHC/Core/Opt/Simplify/Utils.hs
@@ -44,6 +44,7 @@ import GHC.Prelude
import GHC.Core.Opt.Simplify.Env
import GHC.Core.Opt.Monad ( SimplMode(..), Tick(..) )
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Core
import qualified GHC.Core.Subst
import GHC.Core.Ppr
@@ -68,6 +69,7 @@ import GHC.Utils.Misc
import GHC.Data.OrdList ( isNilOL )
import GHC.Utils.Monad
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Core.Opt.ConstantFold
import GHC.Data.FastString ( fsLit )
diff --git a/compiler/GHC/Core/Opt/SpecConstr.hs b/compiler/GHC/Core/Opt/SpecConstr.hs
index 37f85c3822..6f7d61894e 100644
--- a/compiler/GHC/Core/Opt/SpecConstr.hs
+++ b/compiler/GHC/Core/Opt/SpecConstr.hs
@@ -42,6 +42,7 @@ import GHC.Types.Name
import GHC.Types.Basic
import GHC.Driver.Session ( DynFlags(..), GeneralFlag( Opt_SpecConstrKeen )
, gopt, hasPprDebug )
+import GHC.Driver.Ppr
import GHC.Data.Maybe ( orElse, catMaybes, isJust, isNothing )
import GHC.Types.Demand
import GHC.Types.Cpr
@@ -49,6 +50,7 @@ import GHC.Utils.Misc
import GHC.Data.Pair
import GHC.Types.Unique.Supply
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Types.Unique.FM
import GHC.Utils.Monad
diff --git a/compiler/GHC/Core/Opt/Specialise.hs b/compiler/GHC/Core/Opt/Specialise.hs
index 935ba04bb5..a002630c08 100644
--- a/compiler/GHC/Core/Opt/Specialise.hs
+++ b/compiler/GHC/Core/Opt/Specialise.hs
@@ -46,8 +46,10 @@ import GHC.Types.Basic
import GHC.Driver.Types
import GHC.Data.Bag
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Utils.Misc
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Utils.Monad.State
import GHC.Types.Unique.DFM
diff --git a/compiler/GHC/Core/Opt/StaticArgs.hs b/compiler/GHC/Core/Opt/StaticArgs.hs
index d4b76dc0d8..91c8646f19 100644
--- a/compiler/GHC/Core/Opt/StaticArgs.hs
+++ b/compiler/GHC/Core/Opt/StaticArgs.hs
@@ -68,6 +68,7 @@ import GHC.Types.Var.Set
import GHC.Types.Unique
import GHC.Types.Unique.Set
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import Data.List (mapAccumL)
import GHC.Data.FastString
diff --git a/compiler/GHC/Core/Opt/WorkWrap.hs b/compiler/GHC/Core/Opt/WorkWrap.hs
index acffd58c43..b1af5f9d62 100644
--- a/compiler/GHC/Core/Opt/WorkWrap.hs
+++ b/compiler/GHC/Core/Opt/WorkWrap.hs
@@ -21,11 +21,13 @@ import GHC.Core.Type
import GHC.Types.Unique.Supply
import GHC.Types.Basic
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Types.Demand
import GHC.Types.Cpr
import GHC.Core.Opt.WorkWrap.Utils
import GHC.Utils.Misc
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Core.FamInstEnv
import GHC.Utils.Monad
diff --git a/compiler/GHC/Core/Opt/WorkWrap/Utils.hs b/compiler/GHC/Core/Opt/WorkWrap/Utils.hs
index 2ccc743047..8cc0eaa503 100644
--- a/compiler/GHC/Core/Opt/WorkWrap/Utils.hs
+++ b/compiler/GHC/Core/Opt/WorkWrap/Utils.hs
@@ -46,6 +46,7 @@ import GHC.Data.Maybe
import GHC.Utils.Misc
import GHC.Utils.Outputable
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Data.FastString
import GHC.Data.List.SetOps
diff --git a/compiler/GHC/Core/PatSyn.hs b/compiler/GHC/Core/PatSyn.hs
index 3902bb6b18..b07b8265a7 100644
--- a/compiler/GHC/Core/PatSyn.hs
+++ b/compiler/GHC/Core/PatSyn.hs
@@ -30,13 +30,15 @@ import GHC.Prelude
import GHC.Core.Type
import GHC.Core.TyCo.Ppr
import GHC.Types.Name
-import GHC.Utils.Outputable
import GHC.Types.Unique
-import GHC.Utils.Misc
import GHC.Types.Basic
import GHC.Types.Var
import GHC.Types.FieldLabel
+import GHC.Utils.Misc
+import GHC.Utils.Outputable
+import GHC.Utils.Panic
+
import qualified Data.Data as Data
import Data.Function
import Data.List (find)
diff --git a/compiler/GHC/Core/Ppr/TyThing.hs b/compiler/GHC/Core/Ppr/TyThing.hs
index a9231f8499..5a7a60acd2 100644
--- a/compiler/GHC/Core/Ppr/TyThing.hs
+++ b/compiler/GHC/Core/Ppr/TyThing.hs
@@ -26,6 +26,7 @@ import GHC.Iface.Syntax ( ShowSub(..), ShowHowMuch(..), AltPpr(..)
, showToHeader, pprIfaceDecl )
import GHC.Core.Coercion.Axiom ( coAxiomTyCon )
import GHC.Driver.Types( tyThingParent_maybe )
+import GHC.Driver.Ppr
import GHC.Iface.Make ( tyThingToIfaceDecl )
import GHC.Core.FamInstEnv( FamInst(..), FamFlavor(..) )
import GHC.Core.TyCo.Ppr ( pprUserForAll, pprTypeApp, pprSigmaType )
diff --git a/compiler/GHC/Core/Predicate.hs b/compiler/GHC/Core/Predicate.hs
index dda9e24db2..eb31c1be06 100644
--- a/compiler/GHC/Core/Predicate.hs
+++ b/compiler/GHC/Core/Predicate.hs
@@ -35,13 +35,14 @@ import GHC.Core.Class
import GHC.Core.TyCon
import GHC.Types.Var
import GHC.Core.Coercion
+import GHC.Core.Multiplicity ( scaledThing )
import GHC.Builtin.Names
import GHC.Data.FastString
import GHC.Utils.Outputable
import GHC.Utils.Misc
-import GHC.Core.Multiplicity ( scaledThing )
+import GHC.Utils.Panic
import Control.Monad ( guard )
diff --git a/compiler/GHC/Core/Rules.hs b/compiler/GHC/Core/Rules.hs
index acfa93efaa..4ad942c212 100644
--- a/compiler/GHC/Core/Rules.hs
+++ b/compiler/GHC/Core/Rules.hs
@@ -60,8 +60,10 @@ import GHC.Types.Unique.FM
import GHC.Core.Unify as Unify ( ruleMatchTyKiX )
import GHC.Types.Basic
import GHC.Driver.Session ( DynFlags, gopt, targetPlatform )
+import GHC.Driver.Ppr
import GHC.Driver.Flags
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Data.Maybe
import GHC.Data.Bag
diff --git a/compiler/GHC/Core/SimpleOpt.hs b/compiler/GHC/Core/SimpleOpt.hs
index ab3eed4b60..b040626f63 100644
--- a/compiler/GHC/Core/SimpleOpt.hs
+++ b/compiler/GHC/Core/SimpleOpt.hs
@@ -54,7 +54,9 @@ import GHC.Types.Basic
import GHC.Unit.Module ( Module )
import GHC.Utils.Error
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.Pair
import GHC.Utils.Misc
import GHC.Data.Maybe ( orElse )
diff --git a/compiler/GHC/Core/Subst.hs b/compiler/GHC/Core/Subst.hs
index 04ef9ef150..f1d104df66 100644
--- a/compiler/GHC/Core/Subst.hs
+++ b/compiler/GHC/Core/Subst.hs
@@ -39,6 +39,8 @@ module GHC.Core.Subst (
import GHC.Prelude
+import GHC.Driver.Ppr
+
import GHC.Core
import GHC.Core.FVs
import GHC.Core.Seq
@@ -63,6 +65,7 @@ import GHC.Types.Unique.Supply
import GHC.Data.Maybe
import GHC.Utils.Misc
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import Data.List
diff --git a/compiler/GHC/Core/TyCo/Ppr.hs b/compiler/GHC/Core/TyCo/Ppr.hs
index d48cf84c4e..dcfb9f2557 100644
--- a/compiler/GHC/Core/TyCo/Ppr.hs
+++ b/compiler/GHC/Core/TyCo/Ppr.hs
@@ -52,6 +52,7 @@ import GHC.Types.Var.Set
import GHC.Types.Var.Env
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Types.Basic ( PprPrec(..), topPrec, sigPrec, opPrec
, funPrec, appPrec, maybeParen )
diff --git a/compiler/GHC/Core/TyCo/Rep.hs b/compiler/GHC/Core/TyCo/Rep.hs
index 61a374b38e..5931d8c94a 100644
--- a/compiler/GHC/Core/TyCo/Rep.hs
+++ b/compiler/GHC/Core/TyCo/Rep.hs
@@ -99,6 +99,7 @@ import GHC.Types.Unique ( hasKey )
import GHC.Utils.Outputable
import GHC.Data.FastString
import GHC.Utils.Misc
+import GHC.Utils.Panic
-- libraries
import qualified Data.Data as Data hiding ( TyCon )
diff --git a/compiler/GHC/Core/TyCo/Subst.hs b/compiler/GHC/Core/TyCo/Subst.hs
index b3f51739b5..3e8ef37bba 100644
--- a/compiler/GHC/Core/TyCo/Subst.hs
+++ b/compiler/GHC/Core/TyCo/Subst.hs
@@ -81,6 +81,7 @@ import GHC.Types.Unique
import GHC.Types.Unique.FM
import GHC.Types.Unique.Set
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import Data.List (mapAccumL)
diff --git a/compiler/GHC/Core/TyCon.hs b/compiler/GHC/Core/TyCon.hs
index e4f31e9fe0..2c7cd2d5de 100644
--- a/compiler/GHC/Core/TyCon.hs
+++ b/compiler/GHC/Core/TyCon.hs
@@ -162,6 +162,7 @@ import GHC.Core.Coercion.Axiom
import GHC.Builtin.Names
import GHC.Data.Maybe
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString.Env
import GHC.Types.FieldLabel
import GHC.Settings.Constants
diff --git a/compiler/GHC/Core/Type.hs b/compiler/GHC/Core/Type.hs
index c00c818ca5..3c6114ebd5 100644
--- a/compiler/GHC/Core/Type.hs
+++ b/compiler/GHC/Core/Type.hs
@@ -276,6 +276,7 @@ import {-# SOURCE #-} GHC.Core.Coercion
import GHC.Utils.Misc
import GHC.Utils.FV
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Data.FastString
import GHC.Data.Pair
import GHC.Data.List.SetOps
diff --git a/compiler/GHC/Core/Unfold.hs b/compiler/GHC/Core/Unfold.hs
index 5795ca0036..4792545df7 100644
--- a/compiler/GHC/Core/Unfold.hs
+++ b/compiler/GHC/Core/Unfold.hs
@@ -47,6 +47,7 @@ module GHC.Core.Unfold (
import GHC.Prelude
import GHC.Driver.Session
+import GHC.Driver.Ppr
import GHC.Core
import GHC.Core.Opt.OccurAnal ( occurAnalyseExpr )
import GHC.Core.SimpleOpt
@@ -65,6 +66,7 @@ import GHC.Builtin.Types.Prim ( realWorldStatePrimTy )
import GHC.Data.Bag
import GHC.Utils.Misc
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Types.ForeignCall
import GHC.Types.Name
import GHC.Utils.Error
diff --git a/compiler/GHC/Core/UsageEnv.hs b/compiler/GHC/Core/UsageEnv.hs
index 867b9533f0..e88b55560d 100644
--- a/compiler/GHC/Core/UsageEnv.hs
+++ b/compiler/GHC/Core/UsageEnv.hs
@@ -9,6 +9,7 @@ import GHC.Core.Multiplicity
import GHC.Types.Name
import GHC.Types.Name.Env
import GHC.Utils.Outputable
+import GHC.Utils.Panic
--
-- * Usage environments
diff --git a/compiler/GHC/Core/Utils.hs b/compiler/GHC/Core/Utils.hs
index 0095eef0fe..3feb275843 100644
--- a/compiler/GHC/Core/Utils.hs
+++ b/compiler/GHC/Core/Utils.hs
@@ -71,6 +71,8 @@ module GHC.Core.Utils (
import GHC.Prelude
import GHC.Platform
+import GHC.Driver.Ppr
+
import GHC.Core
import GHC.Builtin.Names ( makeStaticName, unsafeEqualityProofName )
import GHC.Core.Ppr
@@ -94,6 +96,7 @@ import GHC.Core.TyCon
import GHC.Core.Multiplicity
import GHC.Types.Unique
import GHC.Utils.Outputable
+import GHC.Utils.Panic
import GHC.Builtin.Types.Prim
import GHC.Data.FastString
import GHC.Data.Maybe