From 1745c7493a4bc1b4bdd6d300f9ee1ea92ff1598a Mon Sep 17 00:00:00 2001
From: Teo Camarasu <teofilcamarasu@gmail.com>
Date: Sat, 22 Feb 2025 21:19:50 +0000
Subject: [PATCH] template-haskell: remove Language.Haskell.TH.Lib.Internal

This module is purely used for the implementation of TH quote
desugarring.

Historically this needed to be exposed from `template-haskell`, since
that's the package that the desugarred expressions referenced but since
https://gitlab.haskell.org/ghc/ghc/-/merge_requests/12479, this is no
longer the case.

Now these identifiers are in `ghc-internal`.

Note that this module has carried the following warning for a long time:

> This is not a part of the public API, and as such, there are no API guarantees for this
module from version to version.

Resolves #24766
---
 .../Language/Haskell/TH/Lib/Internal.hs       |  20 -
 libraries/template-haskell/changelog.md       |   3 +
 .../template-haskell.cabal.in                 |   1 -
 .../template-haskell-exports.stdout           | 344 ------------------
 4 files changed, 3 insertions(+), 365 deletions(-)
 delete mode 100644 libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs

diff --git a/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs b/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
deleted file mode 100644
index d953d912001..00000000000
--- a/libraries/template-haskell/Language/Haskell/TH/Lib/Internal.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# LANGUAGE Safe #-}
--- |
--- Language.Haskell.TH.Lib.Internal exposes some additional functionality that
--- is used internally in GHC's integration with Template Haskell. This is not a
--- part of the public API, and as such, there are no API guarantees for this
--- module from version to version.
-
--- Why do we have both GHC.Boot.TH.Lib and
--- Language.Haskell.TH.Lib? Ultimately, it's because the functions in the
--- former (which are tailored for GHC's use) need different type signatures
--- than the ones in the latter. Syncing up the Internal type signatures would
--- involve a massive amount of breaking changes, so for the time being, we
--- relegate as many changes as we can to just the Internal module, where it
--- is safe to break things.
-
-module Language.Haskell.TH.Lib.Internal
-  ( module GHC.Boot.TH.Lib )
-  where
-
-import GHC.Boot.TH.Lib
diff --git a/libraries/template-haskell/changelog.md b/libraries/template-haskell/changelog.md
index 62959eae085..123dc5a20c5 100644
--- a/libraries/template-haskell/changelog.md
+++ b/libraries/template-haskell/changelog.md
@@ -10,6 +10,9 @@
 
     They are replaced, respectively, by `SpecialiseEP`, `pragSpecED` and
     `pragSpecInlED`.
+  
+  * Remove the `Language.Haskell.TH.Lib.Internal` module. This module has long been deprecated, and exposes compiler internals.
+    Users should use `Language.Haskell.TH.Lib` instead, which exposes a stable version of this API.
 
 ## 2.23.0.0
 
diff --git a/libraries/template-haskell/template-haskell.cabal.in b/libraries/template-haskell/template-haskell.cabal.in
index a0b5155edab..42c367415d6 100644
--- a/libraries/template-haskell/template-haskell.cabal.in
+++ b/libraries/template-haskell/template-haskell.cabal.in
@@ -43,7 +43,6 @@ Library
     exposed-modules:
         Language.Haskell.TH
         Language.Haskell.TH.Lib
-        Language.Haskell.TH.Lib.Internal
         Language.Haskell.TH.Ppr
         Language.Haskell.TH.PprLib
         Language.Haskell.TH.Quote
diff --git a/testsuite/tests/interface-stability/template-haskell-exports.stdout b/testsuite/tests/interface-stability/template-haskell-exports.stdout
index 4104320282d..3b68908ed09 100644
--- a/testsuite/tests/interface-stability/template-haskell-exports.stdout
+++ b/testsuite/tests/interface-stability/template-haskell-exports.stdout
@@ -1213,350 +1213,6 @@ module Language.Haskell.TH.Lib where
   withDecsDoc :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q [GHC.Internal.TH.Syntax.Dec] -> GHC.Internal.TH.Syntax.Q [GHC.Internal.TH.Syntax.Dec]
   wordPrimL :: GHC.Internal.Bignum.Integer.Integer -> GHC.Internal.TH.Syntax.Lit
 
-module Language.Haskell.TH.Lib.Internal where
-  -- Safety: Safe
-  type BangQ :: *
-  type BangQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Bang
-  type BangTypeQ :: *
-  type BangTypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.BangType
-  type BodyQ :: *
-  type BodyQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Body
-  type ClauseQ :: *
-  type ClauseQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Clause
-  type CodeQ :: forall (r :: GHC.Internal.Types.RuntimeRep). TYPE r -> *
-  type CodeQ = GHC.Internal.TH.Syntax.Code GHC.Internal.TH.Syntax.Q
-  type ConQ :: *
-  type ConQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con
-  type CxtQ :: *
-  type CxtQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Cxt
-  type DecQ :: *
-  type DecQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  type Decs :: *
-  type Decs = [GHC.Internal.TH.Syntax.Dec]
-  type DecsQ :: *
-  type DecsQ = GHC.Internal.TH.Syntax.Q [GHC.Internal.TH.Syntax.Dec]
-  type DerivClauseQ :: *
-  type DerivClauseQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.DerivClause
-  type DerivStrategyQ :: *
-  type DerivStrategyQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.DerivStrategy
-  type ExpQ :: *
-  type ExpQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Exp
-  type FamilyResultSigQ :: *
-  type FamilyResultSigQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.FamilyResultSig
-  type FieldExpQ :: *
-  type FieldExpQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.FieldExp
-  type FieldPatQ :: *
-  type FieldPatQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.FieldPat
-  type GuardQ :: *
-  type GuardQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Guard
-  type InfoQ :: *
-  type InfoQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Info
-  type InjectivityAnn :: *
-  type InjectivityAnn = GHC.Internal.TH.Syntax.InjectivityAnn
-  type KindQ :: *
-  type KindQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Kind
-  type MatchQ :: *
-  type MatchQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Match
-  type PatQ :: *
-  type PatQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Pat
-  type PatSynArgsQ :: *
-  type PatSynArgsQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.PatSynArgs
-  type PatSynDirQ :: *
-  type PatSynDirQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.PatSynDir
-  type PredQ :: *
-  type PredQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Pred
-  type RangeQ :: *
-  type RangeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Range
-  type Role :: *
-  type Role = GHC.Internal.TH.Syntax.Role
-  type RuleBndrQ :: *
-  type RuleBndrQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.RuleBndr
-  type SourceStrictnessQ :: *
-  type SourceStrictnessQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.SourceStrictness
-  type SourceUnpackednessQ :: *
-  type SourceUnpackednessQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.SourceUnpackedness
-  type StmtQ :: *
-  type StmtQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Stmt
-  type StrictTypeQ :: *
-  type StrictTypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.StrictType
-  type TExpQ :: forall (r :: GHC.Internal.Types.RuntimeRep). TYPE r -> *
-  type TExpQ a = GHC.Internal.TH.Syntax.Q (GHC.Internal.TH.Syntax.TExp a)
-  type TyLitQ :: *
-  type TyLitQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.TyLit
-  type TySynEqnQ :: *
-  type TySynEqnQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.TySynEqn
-  type TyVarBndrSpec :: *
-  type TyVarBndrSpec = GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.Specificity
-  type TyVarBndrUnit :: *
-  type TyVarBndrUnit = GHC.Internal.TH.Syntax.TyVarBndr ()
-  type TyVarBndrVis :: *
-  type TyVarBndrVis = GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis
-  type TypeQ :: *
-  type TypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Type
-  type VarBangTypeQ :: *
-  type VarBangTypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.VarBangType
-  type VarStrictTypeQ :: *
-  type VarStrictTypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.VarStrictType
-  anyclassStrategy :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.DerivStrategy
-  appE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  appK :: GHC.Internal.TH.Syntax.Kind -> GHC.Internal.TH.Syntax.Kind -> GHC.Internal.TH.Syntax.Kind
-  appKindT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Type
-  appT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  appTypeE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Exp
-  appsE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Exp] -> m GHC.Internal.TH.Syntax.Exp
-  arithSeqE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Range -> m GHC.Internal.TH.Syntax.Exp
-  arrowK :: GHC.Internal.TH.Syntax.Kind
-  arrowT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type
-  asP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
-  bang :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.SourceUnpackedness -> m GHC.Internal.TH.Syntax.SourceStrictness -> m GHC.Internal.TH.Syntax.Bang
-  bangP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
-  bangType :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Bang -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.BangType
-  bindS :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Stmt
-  bndrInvis :: GHC.Internal.TH.Syntax.BndrVis
-  bndrReq :: GHC.Internal.TH.Syntax.BndrVis
-  bytesPrimL :: GHC.Internal.TH.Syntax.Bytes -> GHC.Internal.TH.Syntax.Lit
-  cApi :: GHC.Internal.TH.Syntax.Callconv
-  cCall :: GHC.Internal.TH.Syntax.Callconv
-  caseE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> [m GHC.Internal.TH.Syntax.Match] -> m GHC.Internal.TH.Syntax.Exp
-  charL :: GHC.Internal.Types.Char -> GHC.Internal.TH.Syntax.Lit
-  charPrimL :: GHC.Internal.Types.Char -> GHC.Internal.TH.Syntax.Lit
-  charTyLit :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Char -> m GHC.Internal.TH.Syntax.TyLit
-  classD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> [GHC.Internal.TH.Syntax.FunDep] -> [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Dec
-  classP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Type] -> m GHC.Internal.TH.Syntax.Pred
-  clause :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Body -> [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Clause
-  closedTypeFamilyD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> m GHC.Internal.TH.Syntax.FamilyResultSig -> GHC.Internal.Maybe.Maybe InjectivityAnn -> [m GHC.Internal.TH.Syntax.TySynEqn] -> m GHC.Internal.TH.Syntax.Dec
-  compE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
-  conE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Exp
-  conK :: GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Kind
-  conP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Type] -> [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Pat
-  conT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type
-  condE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  constrainedE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Exp] -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  constraintK :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Kind
-  cxt :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Pred] -> m GHC.Internal.TH.Syntax.Cxt
-  dataD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Kind) -> [m GHC.Internal.TH.Syntax.Con] -> [m GHC.Internal.TH.Syntax.DerivClause] -> m GHC.Internal.TH.Syntax.Dec
-  dataD_doc :: GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.Q (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Kind) -> [(GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con, GHC.Internal.Maybe.Maybe GHC.Internal.Base.String, [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String])] -> [GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  dataFamilyD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Kind) -> m GHC.Internal.TH.Syntax.Dec
-  dataInstD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.Maybe.Maybe [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> m GHC.Internal.TH.Syntax.Type -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Kind) -> [m GHC.Internal.TH.Syntax.Con] -> [m GHC.Internal.TH.Syntax.DerivClause] -> m GHC.Internal.TH.Syntax.Dec
-  dataInstD_doc :: GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.Maybe.Maybe [GHC.Internal.TH.Syntax.Q (GHC.Internal.TH.Syntax.TyVarBndr ())] -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Type -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Kind) -> [(GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con, GHC.Internal.Maybe.Maybe GHC.Internal.Base.String, [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String])] -> [GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  defaultD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Type] -> m GHC.Internal.TH.Syntax.Dec
-  defaultSigD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  derivClause :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.DerivStrategy) -> [m GHC.Internal.TH.Syntax.Pred] -> m GHC.Internal.TH.Syntax.DerivClause
-  doE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.ModName -> [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
-  docCons :: (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con, GHC.Internal.Maybe.Maybe GHC.Internal.Base.String, [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String]) -> GHC.Internal.TH.Syntax.Q ()
-  doublePrimL :: GHC.Internal.Real.Rational -> GHC.Internal.TH.Syntax.Lit
-  dyn :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
-  equalP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Pred
-  equalityT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type
-  explBidir :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Clause] -> m GHC.Internal.TH.Syntax.PatSynDir
-  fieldExp :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Exp -> m (GHC.Internal.TH.Syntax.Name, GHC.Internal.TH.Syntax.Exp)
-  fieldPat :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.FieldPat
-  floatPrimL :: GHC.Internal.Real.Rational -> GHC.Internal.TH.Syntax.Lit
-  forImpD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Callconv -> GHC.Internal.TH.Syntax.Safety -> GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  forallC :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.Specificity)] -> m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Con -> m GHC.Internal.TH.Syntax.Con
-  forallE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.Specificity)] -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  forallT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.Specificity)] -> m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  forallVisE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  forallVisT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  fromE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  fromR :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Range
-  fromThenE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  fromThenR :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Range
-  fromThenToE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  fromThenToR :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Range
-  fromToE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  fromToR :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Range
-  funD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Clause] -> m GHC.Internal.TH.Syntax.Dec
-  funD_doc :: GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Clause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String] -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  funDep :: [GHC.Internal.TH.Syntax.Name] -> [GHC.Internal.TH.Syntax.Name] -> GHC.Internal.TH.Syntax.FunDep
-  gadtC :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [GHC.Internal.TH.Syntax.Name] -> [m GHC.Internal.TH.Syntax.StrictType] -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Con
-  getFieldE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
-  guardedB :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m (GHC.Internal.TH.Syntax.Guard, GHC.Internal.TH.Syntax.Exp)] -> m GHC.Internal.TH.Syntax.Body
-  implBidir :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.PatSynDir
-  implicitParamBindD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Dec
-  implicitParamT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  implicitParamVarE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
-  inferR :: Role
-  inferredSpec :: GHC.Internal.TH.Syntax.Specificity
-  infixApp :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  infixC :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m (GHC.Internal.TH.Syntax.Bang, GHC.Internal.TH.Syntax.Type) -> GHC.Internal.TH.Syntax.Name -> m (GHC.Internal.TH.Syntax.Bang, GHC.Internal.TH.Syntax.Type) -> m GHC.Internal.TH.Syntax.Con
-  infixE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Exp) -> m GHC.Internal.TH.Syntax.Exp -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Exp) -> m GHC.Internal.TH.Syntax.Exp
-  infixLD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  infixLWithSpecD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.NamespaceSpecifier -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  infixND :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  infixNWithSpecD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.NamespaceSpecifier -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  infixP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
-  infixPatSyn :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.PatSynArgs
-  infixRD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  infixRWithSpecD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.NamespaceSpecifier -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  infixT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  injectivityAnn :: GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.Name] -> InjectivityAnn
-  instanceD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Type -> [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Dec
-  instanceWithOverlapD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Overlap -> m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Type -> [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Dec
-  intPrimL :: GHC.Internal.Bignum.Integer.Integer -> GHC.Internal.TH.Syntax.Lit
-  integerL :: GHC.Internal.Bignum.Integer.Integer -> GHC.Internal.TH.Syntax.Lit
-  interruptible :: GHC.Internal.TH.Syntax.Safety
-  invisP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Pat
-  isStrict :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Strict
-  javaScript :: GHC.Internal.TH.Syntax.Callconv
-  kiSigD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Dec
-  kindSig :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.FamilyResultSig
-  kindedBndrTV :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.BndrVis -> m GHC.Internal.TH.Syntax.Kind -> m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)
-  kindedInvisTV :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Specificity -> m GHC.Internal.TH.Syntax.Kind -> m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.Specificity)
-  kindedTV :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Kind -> m (GHC.Internal.TH.Syntax.TyVarBndr ())
-  labelE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
-  lam1E :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  lamCaseE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Match] -> m GHC.Internal.TH.Syntax.Exp
-  lamCasesE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Clause] -> m GHC.Internal.TH.Syntax.Exp
-  lamE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  letE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  letS :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Stmt
-  listE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Exp] -> m GHC.Internal.TH.Syntax.Exp
-  listK :: GHC.Internal.TH.Syntax.Kind
-  listP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Pat
-  listT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type
-  litE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Lit -> m GHC.Internal.TH.Syntax.Exp
-  litP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Lit -> m GHC.Internal.TH.Syntax.Pat
-  litT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.TyLit -> m GHC.Internal.TH.Syntax.Type
-  match :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Body -> [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Match
-  mdoE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.ModName -> [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
-  moduleAnnotation :: GHC.Internal.TH.Syntax.AnnTarget
-  mulArrowT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type
-  multiIfE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m (GHC.Internal.TH.Syntax.Guard, GHC.Internal.TH.Syntax.Exp)] -> m GHC.Internal.TH.Syntax.Exp
-  newtypeD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Kind) -> m GHC.Internal.TH.Syntax.Con -> [m GHC.Internal.TH.Syntax.DerivClause] -> m GHC.Internal.TH.Syntax.Dec
-  newtypeD_doc :: GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.Q (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Kind) -> (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con, GHC.Internal.Maybe.Maybe GHC.Internal.Base.String, [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String]) -> [GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  newtypeInstD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.Maybe.Maybe [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> m GHC.Internal.TH.Syntax.Type -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Kind) -> m GHC.Internal.TH.Syntax.Con -> [m GHC.Internal.TH.Syntax.DerivClause] -> m GHC.Internal.TH.Syntax.Dec
-  newtypeInstD_doc :: GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.Maybe.Maybe [GHC.Internal.TH.Syntax.Q (GHC.Internal.TH.Syntax.TyVarBndr ())] -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Type -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Kind) -> (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con, GHC.Internal.Maybe.Maybe GHC.Internal.Base.String, [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String]) -> [GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  newtypeStrategy :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.DerivStrategy
-  noBindS :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Stmt
-  noSig :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.FamilyResultSig
-  noSourceStrictness :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.SourceStrictness
-  noSourceUnpackedness :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.SourceUnpackedness
-  nominalR :: Role
-  normalB :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Body
-  normalC :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.BangType] -> m GHC.Internal.TH.Syntax.Con
-  normalG :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Guard
-  normalGE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m (GHC.Internal.TH.Syntax.Guard, GHC.Internal.TH.Syntax.Exp)
-  notStrict :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Strict
-  numTyLit :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Bignum.Integer.Integer -> m GHC.Internal.TH.Syntax.TyLit
-  openTypeFamilyD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> m GHC.Internal.TH.Syntax.FamilyResultSig -> GHC.Internal.Maybe.Maybe InjectivityAnn -> m GHC.Internal.TH.Syntax.Dec
-  orP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.NonEmpty (m GHC.Internal.TH.Syntax.Pat) -> m GHC.Internal.TH.Syntax.Pat
-  parS :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [[m GHC.Internal.TH.Syntax.Stmt]] -> m GHC.Internal.TH.Syntax.Stmt
-  parensE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  parensP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
-  parensT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  patG :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Guard
-  patGE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp -> m (GHC.Internal.TH.Syntax.Guard, GHC.Internal.TH.Syntax.Exp)
-  patSynD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.PatSynArgs -> m GHC.Internal.TH.Syntax.PatSynDir -> m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Dec
-  patSynD_doc :: GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.PatSynArgs -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.PatSynDir -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Pat -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String] -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  patSynSigD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  phantomR :: Role
-  plainBndrTV :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.BndrVis -> m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)
-  plainInvisTV :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Specificity -> m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.Specificity)
-  plainTV :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m (GHC.Internal.TH.Syntax.TyVarBndr ())
-  pragAnnD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.AnnTarget -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Dec
-  pragCompleteD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [GHC.Internal.TH.Syntax.Name] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  pragInlD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Inline -> GHC.Internal.TH.Syntax.RuleMatch -> GHC.Internal.TH.Syntax.Phases -> m GHC.Internal.TH.Syntax.Dec
-  pragLineD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Dec
-  pragOpaqueD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  pragRuleD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> GHC.Internal.Maybe.Maybe [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> [m GHC.Internal.TH.Syntax.RuleBndr] -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> GHC.Internal.TH.Syntax.Phases -> m GHC.Internal.TH.Syntax.Dec
-  pragSCCFunD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
-  pragSCCFunNamedD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Dec
-  pragSpecD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> GHC.Internal.TH.Syntax.Phases -> m GHC.Internal.TH.Syntax.Dec
-  pragSpecED :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> [m GHC.Internal.TH.Syntax.RuleBndr] -> m GHC.Internal.TH.Syntax.Exp -> GHC.Internal.TH.Syntax.Phases -> m GHC.Internal.TH.Syntax.Dec
-  pragSpecInlD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> GHC.Internal.TH.Syntax.Inline -> GHC.Internal.TH.Syntax.Phases -> m GHC.Internal.TH.Syntax.Dec
-  pragSpecInlED :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> [m GHC.Internal.TH.Syntax.RuleBndr] -> m GHC.Internal.TH.Syntax.Exp -> GHC.Internal.TH.Syntax.Inline -> GHC.Internal.TH.Syntax.Phases -> m GHC.Internal.TH.Syntax.Dec
-  pragSpecInstD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  prefixPatSyn :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [GHC.Internal.TH.Syntax.Name] -> m GHC.Internal.TH.Syntax.PatSynArgs
-  prim :: GHC.Internal.TH.Syntax.Callconv
-  projectionE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.NonEmpty GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
-  promotedConsT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type
-  promotedInfixT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  promotedNilT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type
-  promotedT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type
-  promotedTupleT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> m GHC.Internal.TH.Syntax.Type
-  promotedUInfixT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  rationalL :: GHC.Internal.Real.Rational -> GHC.Internal.TH.Syntax.Lit
-  recC :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.VarBangType] -> m GHC.Internal.TH.Syntax.Con
-  recConE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.Name, GHC.Internal.TH.Syntax.Exp)] -> m GHC.Internal.TH.Syntax.Exp
-  recGadtC :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [GHC.Internal.TH.Syntax.Name] -> [m GHC.Internal.TH.Syntax.VarStrictType] -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Con
-  recP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.FieldPat] -> m GHC.Internal.TH.Syntax.Pat
-  recS :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Stmt
-  recUpdE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> [m (GHC.Internal.TH.Syntax.Name, GHC.Internal.TH.Syntax.Exp)] -> m GHC.Internal.TH.Syntax.Exp
-  recordPatSyn :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [GHC.Internal.TH.Syntax.Name] -> m GHC.Internal.TH.Syntax.PatSynArgs
-  representationalR :: Role
-  roleAnnotD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [Role] -> m GHC.Internal.TH.Syntax.Dec
-  ruleVar :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.RuleBndr
-  safe :: GHC.Internal.TH.Syntax.Safety
-  sectionL :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  sectionR :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  sigD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  sigE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Exp
-  sigP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Pat
-  sigT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Type
-  sourceLazy :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.SourceStrictness
-  sourceNoUnpack :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.SourceUnpackedness
-  sourceStrict :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.SourceStrictness
-  sourceUnpack :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.SourceUnpackedness
-  specifiedSpec :: GHC.Internal.TH.Syntax.Specificity
-  standaloneDerivD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  standaloneDerivWithStrategyD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.DerivStrategy) -> m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  starK :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Kind
-  staticE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  stdCall :: GHC.Internal.TH.Syntax.Callconv
-  stockStrategy :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.DerivStrategy
-  strTyLit :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.TyLit
-  strictType :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Strict -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.StrictType
-  stringE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
-  stringL :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Lit
-  stringPrimL :: [GHC.Internal.Word.Word8] -> GHC.Internal.TH.Syntax.Lit
-  thisModule :: GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Module
-  tildeP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
-  tupE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Exp)] -> m GHC.Internal.TH.Syntax.Exp
-  tupP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Pat
-  tupleK :: GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.Kind
-  tupleT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> m GHC.Internal.TH.Syntax.Type
-  tySynD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
-  tySynEqn :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Maybe.Maybe [m (GHC.Internal.TH.Syntax.TyVarBndr ())] -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.TySynEqn
-  tySynInstD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.TySynEqn -> m GHC.Internal.TH.Syntax.Dec
-  tyVarSig :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m (GHC.Internal.TH.Syntax.TyVarBndr ()) -> m GHC.Internal.TH.Syntax.FamilyResultSig
-  typeAnnotation :: GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.AnnTarget
-  typeDataD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [m (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Kind) -> [m GHC.Internal.TH.Syntax.Con] -> m GHC.Internal.TH.Syntax.Dec
-  typeDataD_doc :: GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.Q (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Kind) -> [(GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con, GHC.Internal.Maybe.Maybe GHC.Internal.Base.String, [GHC.Internal.Maybe.Maybe GHC.Internal.Base.String])] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  typeE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Exp
-  typeP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Pat
-  typedBracketE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  typedRuleVar :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.RuleBndr
-  typedSpliceE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  uInfixE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
-  uInfixP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
-  uInfixT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
-  unboundVarE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Exp
-  unboxedSumE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> GHC.Internal.TH.Syntax.SumAlt -> GHC.Internal.TH.Syntax.SumArity -> m GHC.Internal.TH.Syntax.Exp
-  unboxedSumP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> GHC.Internal.TH.Syntax.SumAlt -> GHC.Internal.TH.Syntax.SumArity -> m GHC.Internal.TH.Syntax.Pat
-  unboxedSumT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.SumArity -> m GHC.Internal.TH.Syntax.Type
-  unboxedTupE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Exp)] -> m GHC.Internal.TH.Syntax.Exp
-  unboxedTupP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Pat
-  unboxedTupleT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> m GHC.Internal.TH.Syntax.Type
-  unidir :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.PatSynDir
-  unpacked :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Strict
-  unsafe :: GHC.Internal.TH.Syntax.Safety
-  valD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Body -> [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Dec
-  valueAnnotation :: GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.AnnTarget
-  varBangType :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.BangType -> m GHC.Internal.TH.Syntax.VarBangType
-  varE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Exp
-  varK :: GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Kind
-  varP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Pat
-  varStrictType :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.StrictType -> m GHC.Internal.TH.Syntax.VarStrictType
-  varT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type
-  viaStrategy :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.DerivStrategy
-  viewP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
-  wildCardT :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Type
-  wildP :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Pat
-  withDecDoc :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
-  withDecsDoc :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q [GHC.Internal.TH.Syntax.Dec] -> GHC.Internal.TH.Syntax.Q [GHC.Internal.TH.Syntax.Dec]
-  wordPrimL :: GHC.Internal.Bignum.Integer.Integer -> GHC.Internal.TH.Syntax.Lit
-
 module Language.Haskell.TH.Ppr where
   -- Safety: Safe
   type ForallVisFlag :: *
-- 
GitLab