Simon Peyton Jones pushed to branch wip/T26349 at Glasgow Haskell Compiler / GHC
Commits:
c97fd3f5 by Simon Peyton Jones at 2025-10-26T00:07:09+01:00
better
- - - - -
3 changed files:
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/Tc/Errors/Hole.hs
- compiler/GHC/Tc/Types/Evidence.hs
Changes:
=====================================
compiler/GHC/HsToCore/Binds.hs
=====================================
@@ -1602,6 +1602,8 @@ ds_hs_wrapper hs_wrap
where
go WpHole k = k $ \e -> e
go (WpSubType w) k = go (optSubTypeHsWrapper w) k
+ -- See (DSST3) in Note [Deep subsumption and WpSubType]
+ -- in GHC.Tc.Types.Evidence
go (WpTyApp ty) k = k $ \e -> App e (Type ty)
go (WpEvLam ev) k = k $ Lam ev
go (WpTyLam tv) k = k $ Lam tv
=====================================
compiler/GHC/Tc/Errors/Hole.hs
=====================================
@@ -823,9 +823,11 @@ tcFilterHoleFits limit typed_hole ht@(hole_ty, _) candidates =
unfoldWrapper :: HsWrapper -> [Type]
unfoldWrapper = reverse . unfWrp'
- where unfWrp' (WpTyApp ty) = [ty]
- unfWrp' (WpCompose w1 w2) = unfWrp' w1 ++ unfWrp' w2
- unfWrp' _ = []
+ where
+ unfWrp' (WpTyApp ty) = [ty]
+ unfWrp' (WpSubType w) = unfWrp' w
+ unfWrp' (WpCompose w1 w2) = unfWrp' w1 ++ unfWrp' w2
+ unfWrp' _ = []
-- The real work happens here, where we invoke the type checker using
=====================================
compiler/GHC/Tc/Types/Evidence.hs
=====================================
@@ -138,7 +138,7 @@ maybeSymCo NotSwapped co = co
{- Note [Deep subsumption and WpSubType]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When making DeepSubsumption checks, we may end up with hard-to-spot identity wrappers.
-For example (#26255) suppose we have
+For example (#26349) suppose we have
(forall a. Eq a => a->a) -> Int <= (forall a. Eq a => a->a) -> Int
The two types are equal so we should certainly get an identity wrapper. But we'll get
tihs wrapper from `tcSubType`:
@@ -158,11 +158,11 @@ is not sound in general, so we'll end up retaining the lambdas. Two bad results
may not be able to make a decent RULE at all, and will fail with "LHS of rule
is too complicated to desugar (#26255)
-It'd be nicest to solve the problem at source, by never generating those
+It'd be ideal to solve the problem at source, by never generating those
gruesome wrappers in the first place, but we can't do that because
-* The WpTyLam and WpTyApp are not introduced together in `tcSubType`, so we can't
- easily cancel them out. Even if we have
+* The WpTyLam and WpTyApp are introduced independently, not together, in `tcSubType`,
+ so we can't easily cancel them out. For example, even if we have
forall a. t1 <= forall a. t2
there is no guarantee that these are the "same" a. E.g.
forall a b. a -> b -> b <= forall x y. y -> x - >x
@@ -171,17 +171,23 @@ gruesome wrappers in the first place, but we can't do that because
* We have not yet done constraint solving so we don't know what evidence will
end up in those WpLet bindings.
-TL;DR we must generate
-Here's our solution
+TL;DR we must generate the wrapper and then optimise it way if it turns out
+that it is a no-op. Here's our solution
(DSST1) Tag the wrappers generated from a subtype check with WpSubType. In normal
wrappers the binders of a WpTyLam or WpEvLam can scope over the "hole" of the
wrapper -- that is how we introduce type-lambdas and dictionary-lambda into the
terms! But in /subtype/ wrappers, these type/dictionary lambdas only scope over
- the WpTyApp and WpEvApp nodes in the /same/ wrapper. That is w
+ the WpTyApp and WpEvApp nodes in the /same/ wrapper. That is what justifies us
+ eta-reducing the type/dictionarly lambdas.
-(WpSubType wp) means the same as `wp`, but with the added promise that
-the binders in `wp` do not scope over the hole
+ In short, (WpSubType wp) means the same as `wp`, but with the added promise that
+ the binders in `wp` do not scope over the hole
+
+(DSST2) Avoid creating a WpSubType in the common WpHole case, using `mkWpSubType`.
+
+(DSST3) When desugaring, try eta-reduction on the payload of a WpSubType.
+ This is done in `GHC.HsToCore.Binds.dsHsWrapper` by the call to `optSubTypeHsWrapper`.
-}
-- We write wrap :: t1 ~> t2
@@ -190,7 +196,7 @@ data HsWrapper
= WpHole -- The identity coercion
| WpSubType HsWrapper -- (WpSubType wp) Means the same as `wp`
- -- But see Note [WpSubType]
+ -- See Note [Deep subsumption and WpSubType] (DSST1)
| WpCompose HsWrapper HsWrapper
-- (wrap1 `WpCompose` wrap2)[e] = wrap1[ wrap2[ e ]]
@@ -299,6 +305,7 @@ mkWpFun w_arg w_res t1 t2 = WpFun w_arg w_res t1 t2
-- [Wrinkle: Typed Template Haskell] in Note [hasFixedRuntimeRep] in GHC.Tc.Utils.Concrete.
mkWpSubType :: HsWrapper -> HsWrapper
+-- See (DSST2) in Note [Deep subsumption and WpSubType]
mkWpSubType WpHole = WpHole
mkWpSubType (WpCast co) = WpCast co
mkWpSubType w = WpSubType w
@@ -393,7 +400,7 @@ hsWrapDictBinders wrap = go wrap
go (w1 `WpCompose` w2) = go w1 `unionBags` go w2
go (WpFun _ w _ _) = go w
go WpHole = emptyBag
- go (WpSubType {}) = emptyBag -- See Note [WpSubType]
+ go (WpSubType {}) = emptyBag -- See Note [Deep subsumption and WpSubType]
go (WpCast {}) = emptyBag
go (WpEvApp {}) = emptyBag
go (WpTyLam {}) = emptyBag
@@ -420,9 +427,11 @@ collectHsWrapBinders wrap = go wrap []
optSubTypeHsWrapper :: HsWrapper -> HsWrapper
+-- This optimiser is used only on the payload of WpSubType
+-- It finds cases where the entire wrapper is a no-op
+-- See (DSST3) in Note [Deep subsumption and WpSubType]
optSubTypeHsWrapper wrap
- = -- pprTrace "optHsWrapper" (vcat [ text "in:" <+> ppr wrap, text "out:" <+> ppr (opt wrap) ]) $
- opt wrap
+ = opt wrap
where
opt :: HsWrapper -> HsWrapper
opt w = foldr (<.>) WpHole (opt1 w [])
@@ -436,18 +445,17 @@ optSubTypeHsWrapper wrap
opt1 (WpCast co) ws = opt_co co ws
opt1 (WpEvLam ev) ws = opt_ev_lam ev ws
opt1 (WpTyLam tv) ws = opt_ty_lam tv ws
- opt1 (WpLet binds) ws = opt_let binds ws
+ opt1 (WpLet binds) ws = pushWpLet binds ws
opt1 (WpFun w1 w2 sty1 ty2) ws = mk_wp_fun (opt w1) (opt w2) sty1 ty2 ws
opt1 w@(WpTyApp {}) ws = w : ws
opt1 w@(WpEvApp {}) ws = w : ws
- ------------------
- opt_let b@(EvBinds bs) ws | isEmptyBag bs = ws
- | otherwise = WpLet b : ws
- opt_let (TcEvBinds {}) _ = pprPanic "optHsWrapper1" (ppr wrap)
-
-----------------
-- (WpTyLam a <+> WpTyApp a <+> w) = w
+ -- i.e. /\a. <hole> a --> <hole>
+ -- This is only valid if whatever fills the hole does not mention 'a'
+ -- But that's guaranteed in subtype-wrappers;
+ -- see (DSST1) in Note [Deep subsumption and WpSubType]
opt_ty_lam tv (WpTyApp ty : ws)
| Just tv' <- getTyVar_maybe ty
, tv==tv'
@@ -458,15 +466,12 @@ optSubTypeHsWrapper wrap
opt_ty_lam tv (WpCast co : ws)
= opt_co (mkHomoForAllCo tv co) (opt_ty_lam tv ws)
- opt_ty_lam tv (WpLet bs : ws)
- | Just ws' <- pushWpLet bs ws
- = opt_ty_lam tv ws'
-
opt_ty_lam tv ws
= WpTyLam tv : ws
-----------------
-- (WpEvLam ev <+> WpEvAp ev <+> w) = w
+ -- Similar notes to WpTyLam
opt_ev_lam ev (WpEvApp ev_tm : ws)
| EvExpr (Var ev') <- ev_tm
, ev == ev'
@@ -481,9 +486,6 @@ optSubTypeHsWrapper wrap
(mkNomReflCo ManyTy)
(mkRepReflCo (idType ev))
co
- opt_ev_lam ev (WpLet bs : ws)
- | Just ws' <- pushWpLet bs ws
- = opt_ev_lam ev ws'
opt_ev_lam ev ws
= WpEvLam ev : ws
@@ -505,48 +507,64 @@ optSubTypeHsWrapper wrap
where
co_ify co1 co2 = opt_co (mk_wp_fun_co w co1 co2) ws
-pushWpLet :: TcEvBinds -> [HsWrapper] -> Maybe [HsWrapper]
+pushWpLet :: TcEvBinds -> [HsWrapper] -> [HsWrapper]
+-- See if we can transform
+-- WpLet binds <.> w1 <.> .. <.> wn --> w1' <.> .. <.> wn'
+-- by substitution.
+-- We do this just for the narrow case when
+-- - the `binds` are all just v=w, variables only
+-- - the wi are all WpTyApp, WpEvApp, or WpCast
+-- This is just enough to get us the eta-reductions that we seek
pushWpLet tc_ev_binds ws
- | EvBinds binds <- tc_ev_binds
- , Just env <- evBindIdSwizzle binds
- = go env ws
- | otherwise
- = Nothing
+ = case tc_ev_binds of
+ TcEvBinds {} -> pprPanic "pushWpLet" (ppr tc_ev_binds)
+ EvBinds binds
+ | isEmptyBag binds
+ -> ws
+ | Just env <- ev_bind_swizzle binds
+ -> case go env ws of
+ Just ws' -> ws'
+ Nothing -> bale_out
+ | otherwise
+ -> bale_out
where
+ bale_out = WpLet tc_ev_binds : ws
+
go :: IdEnv Id -> [HsWrapper] -> Maybe [HsWrapper]
go env (WpCast co : ws) = do { ws' <- go env ws
; return (WpCast co : ws') }
go env (WpTyApp ty : ws) = do { ws' <- go env ws
; return (WpTyApp ty : ws') }
go env (WpEvApp (EvExpr (Var v)) : ws)
- = do { v' <- swizzleId env v
+ = do { v' <- swizzle_id env v
; ws' <- go env ws
; return (WpEvApp (EvExpr (Var v')) : ws') }
go _ ws = case ws of
[] -> Just []
- (_:_) -> Nothing -- Could not fully eliminate it
+ (_:_) -> Nothing -- Could not fully eliminate the WpLet
-swizzleId :: IdEnv Id -> Id -> Maybe Id
--- Nothing <=> ran out of fuel
--- Shoul
-swizzleId env v = go 100 v
- where
- go :: Int -> EvId -> Maybe EvId
- go fuel v
- | fuel == 0 = Nothing
- | Just v' <- lookupVarEnv env v = go (fuel-1) v'
- | otherwise = Just v
-
-evBindIdSwizzle :: Bag EvBind -> Maybe (IdEnv Id)
-evBindIdSwizzle evbs = foldl' do_one (Just emptyVarEnv) evbs
- where
- do_one :: Maybe (IdEnv Id) -> EvBind -> Maybe (IdEnv Id)
- do_one Nothing _ = Nothing
- do_one (Just swizzle) (EvBind {eb_lhs = bndr, eb_rhs = rhs})
- = case rhs of
- EvExpr (Var v) -> Just (extendVarEnv swizzle bndr v)
- _ -> Nothing
+ swizzle_id :: IdEnv Id -> Id -> Maybe Id
+ -- Nothing <=> ran out of fuel
+ -- This is just belt and braces; we should never build bottom evidence
+ swizzle_id env v = go 100 v
+ where
+ go :: Int -> EvId -> Maybe EvId
+ go fuel v
+ | fuel == 0 = Nothing
+ | Just v' <- lookupVarEnv env v = go (fuel-1) v'
+ | otherwise = Just v
+
+ ev_bind_swizzle :: Bag EvBind -> Maybe (IdEnv Id)
+ -- Succeeds only if the bindings are all var-to-var bindings
+ ev_bind_swizzle evbs = foldl' do_one (Just emptyVarEnv) evbs
+ where
+ do_one :: Maybe (IdEnv Id) -> EvBind -> Maybe (IdEnv Id)
+ do_one Nothing _ = Nothing
+ do_one (Just swizzle) (EvBind {eb_lhs = bndr, eb_rhs = rhs})
+ = case rhs of
+ EvExpr (Var v) -> Just (extendVarEnv swizzle bndr v)
+ _ -> Nothing
{-
************************************************************************
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/c97fd3f51c07bca9b2e66545a7bdaac…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/c97fd3f51c07bca9b2e66545a7bdaac…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/backports-9.14] 20 commits: testsuite: fix T3586 for non-SSE3 platforms
by Ben Gamari (@bgamari) 25 Oct '25
by Ben Gamari (@bgamari) 25 Oct '25
25 Oct '25
Ben Gamari pushed to branch wip/backports-9.14 at Glasgow Haskell Compiler / GHC
Commits:
ffd03d32 by Cheng Shao at 2025-10-25T16:12:45-04:00
testsuite: fix T3586 for non-SSE3 platforms
`T3586.hs` contains `-fvia-C -optc-msse3` which I think is a
best-effort basis to harvest the C compiler's auto vectorization
optimizations via the C backend back when the test was added. The
`-fvia-C` part is now a deprecated no-op because GHC can't fall back
to the C backend on a non-unregisterised build, and `-optc-msse3`
might actually cause the test to fail on non x86/x64 platforms, e.g.
recent builds of wasi-sdk would report `wasm32-wasi-clang: error:
unsupported option '-msse3' for target 'wasm32-unknown-wasi'`.
So this patch cleans up this historical cruft. `-fvia-C` is removed,
and `-optc-msse3` is only passed when cpuid contains `pni` (which
indicates support of SSE3).
(cherry picked from commit 70ee825a516bcf7aac762bfedb4a017d35f8dcf3)
- - - - -
0a01bea2 by Ben Gamari at 2025-10-25T16:12:45-04:00
rts/nonmoving: Fix comment spelling
(cherry picked from commit 14281a22eb27498886def8e5d17797c9ce62f3ad)
- - - - -
836511fe by Ben Gamari at 2025-10-25T16:12:45-04:00
rts/nonmoving: Use atomic operations to update bd->flags
(cherry picked from commit bedd38b01d6b113cb3bd10b5d784c16b32efb5bb)
- - - - -
5a50298b by Ben Gamari at 2025-10-25T16:12:45-04:00
nonmoving: Use get_itbl instead of explicit loads
This is cleaner and also fixes unnecessary (and unsound) use of
`volatile`.
(cherry picked from commit 215d68414020dc4ed0636508c9eecd9f44f62168)
- - - - -
1cfaf40a by Ben Gamari at 2025-10-25T16:12:45-04:00
rts/Scav: Handle WHITEHOLEs in scavenge_one
`scavenge_one`, used to scavenge mutable list entries, may encounter
`WHITEHOLE`s when the non-moving GC is in use via two paths:
1. when an MVAR is being marked concurrently
2. when the object belongs to a chain of selectors being short-cutted.
Fixes #26204.
(cherry picked from commit 2c94aa3aa87c14b1ff5c4355c9a90efedd5d10f4)
- - - - -
d4db67c0 by Ben Gamari at 2025-10-25T16:12:45-04:00
gitlab-ci: Make RELEASE_JOB an input
Rather than an undocumented variable.
(cherry picked from commit f9790ca81deb8b14ff2eabf701aecbcfd6501963)
- - - - -
e3ca15f7 by Julian Ospald at 2025-10-25T16:12:45-04:00
ghc-toolchain: Drop `ld.gold` from merge object command
It's deprecated.
Also see #25716
(cherry picked from commit c58f9a615f05e9d43629f6e846ae22cad2a6163d)
- - - - -
5c820b10 by Ben Gamari at 2025-10-25T16:12:45-04:00
rts/posix: Enforce iteration limit on heap reservation logic
Previously we could loop indefinitely when attempting to get an address
space reservation for our heap. Limit the logic to 8 iterations to
ensure we instead issue a reasonable error message.
Addresses #26151.
(cherry picked from commit ff1650c96c61af02e193854312a9ccd303968e47)
- - - - -
1fb72cf5 by Ben Gamari at 2025-10-25T16:12:45-04:00
rts/posix: Hold on to low reservations when reserving heap
Previously when the OS gave us an address space reservation in low
memory we would immediately release it and try again. However, on some
platforms this meant that we would get the same allocation again in the
next iteration (since mmap's `hint` argument is just that, a hint).
Instead we now hold on to low reservations until we have found a
suitable heap reservation.
Fixes #26151.
(cherry picked from commit 0184455728f841a699648f879fdb29128081fc6b)
- - - - -
10bda05d by Luite Stegeman at 2025-10-25T16:12:45-04:00
rts: Fix lost wakeups in threadPaused for threads blocked on black holes
The lazy blackholing code in threadPaused could overwrite closures
that were already eagerly blackholed, and as such wouldn't have a
marked update frame. If the black hole was overwritten by its
original owner, this would lead to an undetected collision, and
the contents of any existing blocking queue being lost.
This adds a check for eagerly blackholed closures and avoids
overwriting their contents.
Fixes #26324
(cherry picked from commit a1de535f762bc23d4cf23a5b1853591dda12cdc9)
- - - - -
a62540e4 by Luite Stegeman at 2025-10-25T16:12:45-04:00
rts: push the correct update frame in stg_AP_STACK
The frame contains an eager black hole (__stg_EAGER_BLACKHOLE_info) so
we should push an stg_bh_upd_frame_info instead of an stg_upd_frame_info.
(cherry picked from commit b7e21e498d39e0ee764e3237544b4c39ddf98467)
- - - - -
d44e8dbe by sheaf at 2025-10-25T16:12:45-04:00
Improve deep subsumption
This commit improves the DeepSubsumption sub-typing implementation
in GHC.Tc.Utils.Unify.tc_sub_type_deep by being less eager to fall back
to unification.
For example, we now are properly able to prove the subtyping relationship
((∀ a. a->a) -> Int) -> Bool <= β[tau] Bool
for an unfilled metavariable β. In this case (with an AppTy on the right),
we used to fall back to unification. No longer: now, given that the LHS
is a FunTy and that the RHS is a deep rho type (does not need any instantiation),
we try to make the RHS into a FunTy, viz.
β := (->) γ
We can then continue using covariance & contravariance of the function
arrow, which allows us to prove the subtyping relationship, instead of
trying to unify which would cause us to error out with:
Couldn't match expected type ‘β’ with actual type ‘(->) ((∀ a. a -> a) -> Int)
See Note [FunTy vs non-FunTy case in tc_sub_type_deep] in GHC.Tc.Utils.Unify.
The other main improvement in this patch concerns type inference.
The main subsumption logic happens (before & after this patch) in
GHC.Tc.Gen.App.checkResultTy. However, before this patch, all of the
DeepSubsumption logic only kicked in in 'check' mode, not in 'infer' mode.
This patch adds deep instantiation in the 'infer' mode of checkResultTy
when we are doing deep subsumption, which allows us to accept programs
such as:
f :: Int -> (forall a. a->a)
g :: Int -> Bool -> Bool
test1 b =
case b of
True -> f
False -> g
test2 b =
case b of
True -> g
False -> f
See Note [Deeply instantiate in checkResultTy when inferring].
Finally, we add representation-polymorphism checks to ensure that the
lambda abstractions we introduce when doing subsumption obey the
representation polymorphism invariants of Note [Representation polymorphism invariants]
in GHC.Core. See Note [FunTy vs FunTy case in tc_sub_type_deep].
This is accompanied by a courtesy change to `(<.>) :: HsWrapper -> HsWrapper -> HsWrapper`,
adding the equation:
WpCast c1 <.> WpCast c2 = WpCast (c1 `mkTransCo` c2)
This is useful because mkWpFun does not introduce an eta-expansion when
both of the argument & result wrappers are casts; so this change allows
us to avoid introducing lambda abstractions when casts suffice.
Fixes #26225
(cherry picked from commit 56b32c5a2d5d7cad89a12f4d74dc940e086069d1)
- - - - -
9b42551e by Simon Peyton Jones at 2025-10-25T16:12:46-04:00
Fix deep subsumption again
This commit fixed #26255:
commit 56b32c5a2d5d7cad89a12f4d74dc940e086069d1
Author: sheaf <sam.derbyshire(a)gmail.com>
Date: Mon Aug 11 15:50:47 2025 +0200
Improve deep subsumption
This commit improves the DeepSubsumption sub-typing implementation
in GHC.Tc.Utils.Unify.tc_sub_type_deep by being less eager to fall back
to unification.
But alas it still wasn't quite right for view patterns: #26331
This MR does a generalisation to fix it. A bit of a sledgehammer to crack
a nut, but nice.
* Add a field `ir_inst :: InferInstFlag` to `InferResult`, where
```
data InferInstFlag = IIF_Sigma | IIF_ShallowRho | IIF_DeepRho
```
* The flag says exactly how much `fillInferResult` should instantiate
before filling the hole.
* We can also use this to replace the previous very ad-hoc `tcInferSigma`
that was used to implement GHCi's `:type` command.
(cherry picked from commit 716274a5b6c35d963091f563c98d07e72ee4d755)
- - - - -
6c0409bc by sheaf at 2025-10-25T16:12:46-04:00
Use tcMkScaledFunTys in matchExpectedFunTys
We should use tcMkScaledFunTys rather than mkScaledFunTys in
GHC.Tc.Utils.Unify.matchExpectedFunTys, as the latter crashes
when the kind of the result type is a bare metavariable.
We know the result is always Type-like, so we don't need scaledFunTys
to try to rediscover that from the kind.
Fixes #26277
(cherry picked from commit 624afa4a65caa8ec23f85e70574dfb606f90c173)
- - - - -
1e5a7d25 by sheaf at 2025-10-25T16:12:46-04:00
Deep subsumption: unify mults without tcEqMult
As seen in #26332, we may well end up with a non-reflexive multiplicity
coercion when doing deep subsumption. We should do the same thing that
we do without deep subsumption: unify the multiplicities normally,
without requiring that the coercion is reflexive (which is what
'tcEqMult' was doing).
Fixes #26332
(cherry picked from commit dc79593d4606e5cea93e742a9f2def53705bc773)
- - - - -
7ddb64c2 by Teo Camarasu at 2025-10-25T16:12:46-04:00
ghc-internal: invert dependency of GHC.Internal.TH.Syntax on Data.Data
This means that Data.Data no longer blocks building TH.Syntax, which
allows greater parallelism in our builds.
We move the Data.Data.Data instances to Data.Data. Quasi depends on
Data.Data for one of its methods, so,
we split the Quasi/Q, etc definition out of GHC.Internal.TH.Syntax
into its own module. This has the added benefit of splitting up this
quite large module.
Previously TH.Syntax was a bottleneck when compiling ghc-internal. Now
it is less of a bottle-neck and is also slightly quicker to
compile (since it no longer contains these instances) at the cost of
making Data.Data slightly more expensive to compile.
TH.Lift which depends on TH.Syntax can also compile quicker and no
longer blocks ghc-internal finishing to compile.
Resolves #26217
-------------------------
Metric Decrease:
MultiLayerModulesTH_OneShot
T13253
T21839c
T24471
Metric Increase:
T12227
-------------------------
- - - - -
6477204c by Teo Camarasu at 2025-10-25T16:12:46-04:00
Add submodules for template-haskell-lift and template-haskell-quasiquoter
These two new boot libraries expose stable subsets of the
template-haskell interface.
This is an implemenation of the GHC proposal https://github.com/ghc-proposals/ghc-proposals/pull/696
Work towards #25262
(cherry picked from commit 4be32153febff94f9c89f7f74971da3721d19c87)
- - - - -
0ee3398e by Ben Gamari at 2025-10-25T16:12:46-04:00
testsuite: Accept new template-haskell-exports output
- - - - -
4686a8b2 by Ben Gamari at 2025-10-25T16:12:46-04:00
testsuite: Accept new base-exports output
- - - - -
387872bd by Ben Gamari at 2025-10-25T16:12:46-04:00
template-haskell: Accept T15321
- - - - -
92 changed files:
- .gitlab-ci.yml
- .gitmodules
- compiler/GHC/Builtin/Names/TH.hs
- compiler/GHC/Builtin/PrimOps/Ids.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/Rename/Splice.hs
- compiler/GHC/Tc/Gen/App.hs
- compiler/GHC/Tc/Gen/Bind.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Expr.hs-boot
- compiler/GHC/Tc/Gen/Head.hs
- compiler/GHC/Tc/Gen/HsType.hs
- compiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Gen/Pat.hs
- compiler/GHC/Tc/Gen/Splice.hs
- compiler/GHC/Tc/Gen/Splice.hs-boot
- compiler/GHC/Tc/Module.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Types/TH.hs
- compiler/GHC/Tc/Utils/Concrete.hs
- compiler/GHC/Tc/Utils/TcMType.hs
- compiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Utils/Unify.hs
- compiler/GHC/Types/Id/Make.hs
- hadrian/src/Packages.hs
- hadrian/src/Settings/Default.hs
- libraries/base/src/Data/Array/Byte.hs
- libraries/base/src/Data/Fixed.hs
- + libraries/ghc-boot-th/GHC/Boot/TH/Monad.hs
- libraries/ghc-boot-th/ghc-boot-th.cabal.in
- libraries/ghc-internal/ghc-internal.cabal.in
- libraries/ghc-internal/src/GHC/Internal/Data/Data.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lib.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
- + libraries/ghc-internal/src/GHC/Internal/TH/Monad.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Quote.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Syntax.hs
- libraries/ghci/GHCi/Message.hs
- libraries/ghci/GHCi/TH.hs
- + libraries/template-haskell-lift
- + libraries/template-haskell-quasiquoter
- libraries/template-haskell/Language/Haskell/TH/Quote.hs
- libraries/template-haskell/Language/Haskell/TH/Syntax.hs
- rts/Apply.cmm
- rts/ThreadPaused.c
- rts/include/rts/storage/Block.h
- rts/posix/OSMem.c
- rts/sm/NonMoving.c
- rts/sm/NonMovingMark.c
- rts/sm/Scav.c
- testsuite/driver/cpu_features.py
- testsuite/tests/corelint/LintEtaExpand.stderr
- testsuite/tests/deriving/should_compile/T14682.stderr
- testsuite/tests/deriving/should_compile/drv-empty-data.stderr
- testsuite/tests/indexed-types/should_fail/T5439.stderr
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
- testsuite/tests/interface-stability/base-exports.stdout-ws-32
- testsuite/tests/interface-stability/template-haskell-exports.stdout
- + testsuite/tests/linear/should_compile/T26332.hs
- testsuite/tests/linear/should_compile/all.T
- testsuite/tests/partial-sigs/should_compile/T10403.stderr
- testsuite/tests/partial-sigs/should_fail/T10615.stderr
- + testsuite/tests/patsyn/should_compile/T26331.hs
- + testsuite/tests/patsyn/should_compile/T26331a.hs
- testsuite/tests/patsyn/should_compile/all.T
- testsuite/tests/perf/should_run/T3586.hs
- testsuite/tests/perf/should_run/all.T
- testsuite/tests/plugins/plugins10.stdout
- + testsuite/tests/rep-poly/NoEtaRequired.hs
- testsuite/tests/rep-poly/T21906.stderr
- testsuite/tests/rep-poly/all.T
- testsuite/tests/splice-imports/SI29.stderr
- testsuite/tests/th/T11452.stderr
- testsuite/tests/th/T15321.stderr
- testsuite/tests/th/T7276.stderr
- testsuite/tests/th/TH_NestedSplicesFail3.stderr
- testsuite/tests/th/TH_NestedSplicesFail4.stderr
- + testsuite/tests/typecheck/should_compile/T26225.hs
- + testsuite/tests/typecheck/should_compile/T26225b.hs
- + testsuite/tests/typecheck/should_compile/T26277.hs
- testsuite/tests/typecheck/should_compile/all.T
- − testsuite/tests/typecheck/should_fail/T12563.stderr
- testsuite/tests/typecheck/should_fail/T14618.stderr
- testsuite/tests/typecheck/should_fail/T6022.stderr
- testsuite/tests/typecheck/should_fail/T8883.stderr
- testsuite/tests/typecheck/should_fail/all.T
- testsuite/tests/typecheck/should_fail/tcfail140.stderr
- utils/ghc-toolchain/src/GHC/Toolchain/Tools/MergeObjs.hs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e86b75973070d173cdb4a7dc54a58b…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/e86b75973070d173cdb4a7dc54a58b…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/backports-9.14] 29 commits: haddock: Bump version to 2.33.0
by Ben Gamari (@bgamari) 25 Oct '25
by Ben Gamari (@bgamari) 25 Oct '25
25 Oct '25
Ben Gamari pushed to branch wip/backports-9.14 at Glasgow Haskell Compiler / GHC
Commits:
028313ed by Ben Gamari at 2025-10-25T15:18:43-04:00
haddock: Bump version to 2.33.0
- - - - -
61dcd182 by Julian Ospald at 2025-10-25T15:18:43-04:00
Improve error handling in 'getPackageArchives'
When the library dirs in the package conf files are not set up correctly,
the JS linker will happily ignore such packages and not link against them,
although they're part of the link plan.
Fixes #26383
(cherry picked from commit 91b6be10bd58c2bfc1c7c22e81b06ab3be583228)
- - - - -
7bec4f4e by Cheng Shao at 2025-10-25T15:18:43-04:00
rts: fix wasm JSFFI initialization constructor code
This commit fixes wasm JSFFI initialization constructor code so that
the constructor is self-contained and avoids invoking a fake
__main_argc_argv function. The previous approach of reusing
__main_void logic in wasi-libc saves a tiny bit of code, at the
expense of link-time trouble whenever GHC links a wasm module without
-no-hs-main, in which case the driver-generated main function would
clash with the definition here, resulting in a linker error. It's
simply better to avoid messing with the main function, and it would
additionally allow linking wasm32-wasi command modules that does make
use of synchronous JSFFI.
(cherry picked from commit bdc9d130a838017f863f5c7a380cb0858035f859)
- - - - -
b630e81d by Rodrigo Mesquita at 2025-10-25T15:18:43-04:00
Move code-gen aux symbols from ghc-internal to rts
These symbols were all previously defined in ghc-internal and made the
dependency structure awkward, where the rts may refer to some of these
symbols and had to work around that circular dependency the way
described in #26166.
Moreover, the code generator will produce code that uses these symbols!
Therefore, they should be available in the rts:
PRINCIPLE: If the code generator may produce code which uses this
symbol, then it should be defined in the rts rather than, say,
ghc-internal.
That said, the main motivation is towards fixing #26166.
Towards #26166. Pre-requisite of !14892
(cherry picked from commit ba3e5bddb222008591edb6c3d433d93084170571)
- - - - -
6b370222 by Ben Gamari at 2025-10-25T15:18:44-04:00
compiler: Rename isMathFun -> isLibcFun
This set includes more than just math functions.
(cherry picked from commit 43fdfddc25c36ef4811941231d5755bad065796d)
- - - - -
64744873 by Ben Gamari at 2025-10-25T15:18:44-04:00
compiler: Add libc allocator functions to libc_funs
Prototypes for these are now visible from `Prim.h`, resulting in
multiple-declaration warnings in the unregisterised job.
(cherry picked from commit 4ed5138f7af532731f88380f98103487a9f15c5a)
- - - - -
c9301893 by Ben Gamari at 2025-10-25T15:18:44-04:00
rts: Minimize header dependencies of Prim.h
Otherwise we will end up with redundant and incompatible declarations
resulting in warnings during the unregisterised build.
(cherry picked from commit 9a0a076b80d6fb68d7722d2bb72c17c90ba22cd1)
- - - - -
99f980ac by Ben Gamari at 2025-10-25T15:18:44-04:00
rts: Avoid static symbol references to ghc-internal
This resolves #26166, a bug due to new constraints placed by Apple's
linker on undefined references.
One source of such references in the RTS is the many symbols referenced
in ghc-internal. To mitigate #26166, we make these references dynamic,
as described in Note [RTS/ghc-internal interface].
Fixes #26166
Co-authored-by: Rodrigo Mesquita <rodrigo.m.mesquita(a)gmail.com>
Co-authored-by: Cheng Shao <terrorjack(a)type.dance>
(cherry picked from commit f31de2a9c2405d6645998460e4b501f9279606b3)
- - - - -
7f627345 by fendor at 2025-10-25T15:18:44-04:00
Fix typos in haddock documentation for stack annotation API
(cherry picked from commit e17dc695bf1f5fc015c2a9ab8981ac64d27a3708)
- - - - -
8635fdda by Teo Camarasu at 2025-10-25T15:18:47-04:00
Add submodules for template-haskell-lift and template-haskell-quasiquoter
These two new boot libraries expose stable subsets of the
template-haskell interface.
This is an implemenation of the GHC proposal https://github.com/ghc-proposals/ghc-proposals/pull/696
Work towards #25262
(cherry picked from commit 4be32153febff94f9c89f7f74971da3721d19c87)
- - - - -
fa04c62a by Cheng Shao at 2025-10-25T15:18:47-04:00
testsuite: fix T3586 for non-SSE3 platforms
`T3586.hs` contains `-fvia-C -optc-msse3` which I think is a
best-effort basis to harvest the C compiler's auto vectorization
optimizations via the C backend back when the test was added. The
`-fvia-C` part is now a deprecated no-op because GHC can't fall back
to the C backend on a non-unregisterised build, and `-optc-msse3`
might actually cause the test to fail on non x86/x64 platforms, e.g.
recent builds of wasi-sdk would report `wasm32-wasi-clang: error:
unsupported option '-msse3' for target 'wasm32-unknown-wasi'`.
So this patch cleans up this historical cruft. `-fvia-C` is removed,
and `-optc-msse3` is only passed when cpuid contains `pni` (which
indicates support of SSE3).
(cherry picked from commit 70ee825a516bcf7aac762bfedb4a017d35f8dcf3)
- - - - -
f9761d78 by Ben Gamari at 2025-10-25T15:18:47-04:00
rts/nonmoving: Fix comment spelling
(cherry picked from commit 14281a22eb27498886def8e5d17797c9ce62f3ad)
- - - - -
9ff0dab0 by Ben Gamari at 2025-10-25T15:18:47-04:00
rts/nonmoving: Use atomic operations to update bd->flags
(cherry picked from commit bedd38b01d6b113cb3bd10b5d784c16b32efb5bb)
- - - - -
2bfea7b8 by Ben Gamari at 2025-10-25T15:18:48-04:00
nonmoving: Use get_itbl instead of explicit loads
This is cleaner and also fixes unnecessary (and unsound) use of
`volatile`.
(cherry picked from commit 215d68414020dc4ed0636508c9eecd9f44f62168)
- - - - -
0f4bc859 by Ben Gamari at 2025-10-25T15:18:48-04:00
rts/Scav: Handle WHITEHOLEs in scavenge_one
`scavenge_one`, used to scavenge mutable list entries, may encounter
`WHITEHOLE`s when the non-moving GC is in use via two paths:
1. when an MVAR is being marked concurrently
2. when the object belongs to a chain of selectors being short-cutted.
Fixes #26204.
(cherry picked from commit 2c94aa3aa87c14b1ff5c4355c9a90efedd5d10f4)
- - - - -
e8bdf424 by Ben Gamari at 2025-10-25T15:18:48-04:00
gitlab-ci: Make RELEASE_JOB an input
Rather than an undocumented variable.
(cherry picked from commit f9790ca81deb8b14ff2eabf701aecbcfd6501963)
- - - - -
f3ddb9f3 by Julian Ospald at 2025-10-25T15:18:48-04:00
ghc-toolchain: Drop `ld.gold` from merge object command
It's deprecated.
Also see #25716
(cherry picked from commit c58f9a615f05e9d43629f6e846ae22cad2a6163d)
- - - - -
5e61fe86 by Ben Gamari at 2025-10-25T15:18:48-04:00
rts/posix: Enforce iteration limit on heap reservation logic
Previously we could loop indefinitely when attempting to get an address
space reservation for our heap. Limit the logic to 8 iterations to
ensure we instead issue a reasonable error message.
Addresses #26151.
(cherry picked from commit ff1650c96c61af02e193854312a9ccd303968e47)
- - - - -
39370635 by Ben Gamari at 2025-10-25T15:18:48-04:00
rts/posix: Hold on to low reservations when reserving heap
Previously when the OS gave us an address space reservation in low
memory we would immediately release it and try again. However, on some
platforms this meant that we would get the same allocation again in the
next iteration (since mmap's `hint` argument is just that, a hint).
Instead we now hold on to low reservations until we have found a
suitable heap reservation.
Fixes #26151.
(cherry picked from commit 0184455728f841a699648f879fdb29128081fc6b)
- - - - -
99f984c1 by Luite Stegeman at 2025-10-25T15:18:48-04:00
rts: Fix lost wakeups in threadPaused for threads blocked on black holes
The lazy blackholing code in threadPaused could overwrite closures
that were already eagerly blackholed, and as such wouldn't have a
marked update frame. If the black hole was overwritten by its
original owner, this would lead to an undetected collision, and
the contents of any existing blocking queue being lost.
This adds a check for eagerly blackholed closures and avoids
overwriting their contents.
Fixes #26324
(cherry picked from commit a1de535f762bc23d4cf23a5b1853591dda12cdc9)
- - - - -
d7f649c9 by Luite Stegeman at 2025-10-25T15:18:48-04:00
rts: push the correct update frame in stg_AP_STACK
The frame contains an eager black hole (__stg_EAGER_BLACKHOLE_info) so
we should push an stg_bh_upd_frame_info instead of an stg_upd_frame_info.
(cherry picked from commit b7e21e498d39e0ee764e3237544b4c39ddf98467)
- - - - -
7420e4e2 by sheaf at 2025-10-25T15:18:48-04:00
Improve deep subsumption
This commit improves the DeepSubsumption sub-typing implementation
in GHC.Tc.Utils.Unify.tc_sub_type_deep by being less eager to fall back
to unification.
For example, we now are properly able to prove the subtyping relationship
((∀ a. a->a) -> Int) -> Bool <= β[tau] Bool
for an unfilled metavariable β. In this case (with an AppTy on the right),
we used to fall back to unification. No longer: now, given that the LHS
is a FunTy and that the RHS is a deep rho type (does not need any instantiation),
we try to make the RHS into a FunTy, viz.
β := (->) γ
We can then continue using covariance & contravariance of the function
arrow, which allows us to prove the subtyping relationship, instead of
trying to unify which would cause us to error out with:
Couldn't match expected type ‘β’ with actual type ‘(->) ((∀ a. a -> a) -> Int)
See Note [FunTy vs non-FunTy case in tc_sub_type_deep] in GHC.Tc.Utils.Unify.
The other main improvement in this patch concerns type inference.
The main subsumption logic happens (before & after this patch) in
GHC.Tc.Gen.App.checkResultTy. However, before this patch, all of the
DeepSubsumption logic only kicked in in 'check' mode, not in 'infer' mode.
This patch adds deep instantiation in the 'infer' mode of checkResultTy
when we are doing deep subsumption, which allows us to accept programs
such as:
f :: Int -> (forall a. a->a)
g :: Int -> Bool -> Bool
test1 b =
case b of
True -> f
False -> g
test2 b =
case b of
True -> g
False -> f
See Note [Deeply instantiate in checkResultTy when inferring].
Finally, we add representation-polymorphism checks to ensure that the
lambda abstractions we introduce when doing subsumption obey the
representation polymorphism invariants of Note [Representation polymorphism invariants]
in GHC.Core. See Note [FunTy vs FunTy case in tc_sub_type_deep].
This is accompanied by a courtesy change to `(<.>) :: HsWrapper -> HsWrapper -> HsWrapper`,
adding the equation:
WpCast c1 <.> WpCast c2 = WpCast (c1 `mkTransCo` c2)
This is useful because mkWpFun does not introduce an eta-expansion when
both of the argument & result wrappers are casts; so this change allows
us to avoid introducing lambda abstractions when casts suffice.
Fixes #26225
(cherry picked from commit 56b32c5a2d5d7cad89a12f4d74dc940e086069d1)
- - - - -
7bfb1d58 by Simon Peyton Jones at 2025-10-25T15:18:48-04:00
Fix deep subsumption again
This commit fixed #26255:
commit 56b32c5a2d5d7cad89a12f4d74dc940e086069d1
Author: sheaf <sam.derbyshire(a)gmail.com>
Date: Mon Aug 11 15:50:47 2025 +0200
Improve deep subsumption
This commit improves the DeepSubsumption sub-typing implementation
in GHC.Tc.Utils.Unify.tc_sub_type_deep by being less eager to fall back
to unification.
But alas it still wasn't quite right for view patterns: #26331
This MR does a generalisation to fix it. A bit of a sledgehammer to crack
a nut, but nice.
* Add a field `ir_inst :: InferInstFlag` to `InferResult`, where
```
data InferInstFlag = IIF_Sigma | IIF_ShallowRho | IIF_DeepRho
```
* The flag says exactly how much `fillInferResult` should instantiate
before filling the hole.
* We can also use this to replace the previous very ad-hoc `tcInferSigma`
that was used to implement GHCi's `:type` command.
(cherry picked from commit 716274a5b6c35d963091f563c98d07e72ee4d755)
- - - - -
837844c4 by sheaf at 2025-10-25T15:18:48-04:00
Use tcMkScaledFunTys in matchExpectedFunTys
We should use tcMkScaledFunTys rather than mkScaledFunTys in
GHC.Tc.Utils.Unify.matchExpectedFunTys, as the latter crashes
when the kind of the result type is a bare metavariable.
We know the result is always Type-like, so we don't need scaledFunTys
to try to rediscover that from the kind.
Fixes #26277
(cherry picked from commit 624afa4a65caa8ec23f85e70574dfb606f90c173)
- - - - -
c3e1f769 by sheaf at 2025-10-25T15:18:48-04:00
Deep subsumption: unify mults without tcEqMult
As seen in #26332, we may well end up with a non-reflexive multiplicity
coercion when doing deep subsumption. We should do the same thing that
we do without deep subsumption: unify the multiplicities normally,
without requiring that the coercion is reflexive (which is what
'tcEqMult' was doing).
Fixes #26332
(cherry picked from commit dc79593d4606e5cea93e742a9f2def53705bc773)
- - - - -
1fec7050 by Teo Camarasu at 2025-10-25T15:18:48-04:00
ghc-internal: invert dependency of GHC.Internal.TH.Syntax on Data.Data
This means that Data.Data no longer blocks building TH.Syntax, which
allows greater parallelism in our builds.
We move the Data.Data.Data instances to Data.Data. Quasi depends on
Data.Data for one of its methods, so,
we split the Quasi/Q, etc definition out of GHC.Internal.TH.Syntax
into its own module. This has the added benefit of splitting up this
quite large module.
Previously TH.Syntax was a bottleneck when compiling ghc-internal. Now
it is less of a bottle-neck and is also slightly quicker to
compile (since it no longer contains these instances) at the cost of
making Data.Data slightly more expensive to compile.
TH.Lift which depends on TH.Syntax can also compile quicker and no
longer blocks ghc-internal finishing to compile.
Resolves #26217
-------------------------
Metric Decrease:
MultiLayerModulesTH_OneShot
T13253
T21839c
T24471
Metric Increase:
T12227
-------------------------
- - - - -
4f43f51d by Ben Gamari at 2025-10-25T15:18:48-04:00
testsuite: Accept new template-haskell-exports output
- - - - -
b11b59d0 by Ben Gamari at 2025-10-25T15:18:48-04:00
testsuite: Accept new base-exports output
- - - - -
e86b7597 by Ben Gamari at 2025-10-25T15:18:48-04:00
template-haskell: Accept T15321
- - - - -
147 changed files:
- .gitlab-ci.yml
- .gitmodules
- compiler/GHC/Builtin/Names/TH.hs
- compiler/GHC/Builtin/PrimOps/Ids.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/Hs/Expr.hs
- compiler/GHC/HsToCore.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/HsToCore/Foreign/Wasm.hs
- compiler/GHC/Linker/Dynamic.hs
- compiler/GHC/Linker/Static.hs
- compiler/GHC/Rename/Splice.hs
- compiler/GHC/StgToJS/Linker/Linker.hs
- compiler/GHC/Tc/Gen/App.hs
- compiler/GHC/Tc/Gen/Bind.hs
- compiler/GHC/Tc/Gen/Expr.hs
- compiler/GHC/Tc/Gen/Expr.hs-boot
- compiler/GHC/Tc/Gen/Head.hs
- compiler/GHC/Tc/Gen/HsType.hs
- compiler/GHC/Tc/Gen/Match.hs
- compiler/GHC/Tc/Gen/Pat.hs
- compiler/GHC/Tc/Gen/Splice.hs
- compiler/GHC/Tc/Gen/Splice.hs-boot
- compiler/GHC/Tc/Module.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Types/TH.hs
- compiler/GHC/Tc/Utils/Concrete.hs
- compiler/GHC/Tc/Utils/TcMType.hs
- compiler/GHC/Tc/Utils/TcType.hs
- compiler/GHC/Tc/Utils/Unify.hs
- compiler/GHC/Types/Id/Make.hs
- hadrian/src/Packages.hs
- hadrian/src/Settings/Default.hs
- hadrian/src/Settings/Packages.hs
- libraries/base/src/Data/Array/Byte.hs
- libraries/base/src/Data/Fixed.hs
- + libraries/ghc-boot-th/GHC/Boot/TH/Monad.hs
- libraries/ghc-boot-th/ghc-boot-th.cabal.in
- libraries/ghc-experimental/src/GHC/Stack/Annotation/Experimental.hs
- + libraries/ghc-internal/cbits/RtsIface.c
- libraries/ghc-internal/ghc-internal.cabal.in
- + libraries/ghc-internal/include/RtsIfaceSymbols.h
- libraries/ghc-internal/src/GHC/Internal/Data/Data.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lib.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Lift.hs
- + libraries/ghc-internal/src/GHC/Internal/TH/Monad.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Quote.hs
- libraries/ghc-internal/src/GHC/Internal/TH/Syntax.hs
- libraries/ghci/GHCi/Message.hs
- libraries/ghci/GHCi/TH.hs
- + libraries/template-haskell-lift
- + libraries/template-haskell-quasiquoter
- libraries/template-haskell/Language/Haskell/TH/Quote.hs
- libraries/template-haskell/Language/Haskell/TH/Syntax.hs
- rts/Apply.cmm
- rts/BuiltinClosures.c
- rts/CloneStack.h
- rts/Compact.cmm
- rts/ContinuationOps.cmm
- rts/Exception.cmm
- rts/Prelude.h
- rts/PrimOps.cmm
- rts/RtsAPI.c
- rts/RtsStartup.c
- rts/RtsSymbols.c
- + rts/RtsToHsIface.c
- rts/StgStdThunks.cmm
- rts/ThreadPaused.c
- rts/configure.ac
- − rts/external-symbols.list.in
- rts/include/Rts.h
- rts/include/RtsAPI.h
- rts/include/Stg.h
- + rts/include/rts/RtsToHsIface.h
- rts/include/rts/Types.h
- rts/include/rts/storage/Block.h
- rts/include/stg/Prim.h
- rts/posix/OSMem.c
- rts/posix/Signals.c
- libraries/ghc-internal/cbits/atomic.c → rts/prim/atomic.c
- libraries/ghc-internal/cbits/bitrev.c → rts/prim/bitrev.c
- libraries/ghc-internal/cbits/bswap.c → rts/prim/bswap.c
- libraries/ghc-internal/cbits/clz.c → rts/prim/clz.c
- libraries/ghc-internal/cbits/ctz.c → rts/prim/ctz.c
- libraries/ghc-internal/cbits/int64x2minmax.c → rts/prim/int64x2minmax.c
- libraries/ghc-internal/cbits/longlong.c → rts/prim/longlong.c
- libraries/ghc-internal/cbits/mulIntMayOflo.c → rts/prim/mulIntMayOflo.c
- libraries/ghc-internal/cbits/pdep.c → rts/prim/pdep.c
- libraries/ghc-internal/cbits/pext.c → rts/prim/pext.c
- libraries/ghc-internal/cbits/popcnt.c → rts/prim/popcnt.c
- libraries/ghc-internal/cbits/vectorQuotRem.c → rts/prim/vectorQuotRem.c
- libraries/ghc-internal/cbits/word2float.c → rts/prim/word2float.c
- − rts/rts.buildinfo.in
- rts/rts.cabal
- rts/sm/NonMoving.c
- rts/sm/NonMovingMark.c
- rts/sm/Scav.c
- rts/wasm/JSFFI.c
- rts/wasm/scheduler.cmm
- rts/win32/libHSghc-internal.def
- testsuite/driver/cpu_features.py
- testsuite/tests/corelint/LintEtaExpand.stderr
- testsuite/tests/deriving/should_compile/T14682.stderr
- testsuite/tests/deriving/should_compile/drv-empty-data.stderr
- testsuite/tests/indexed-types/should_fail/T5439.stderr
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/interface-stability/base-exports.stdout-mingw32
- testsuite/tests/interface-stability/base-exports.stdout-ws-32
- testsuite/tests/interface-stability/template-haskell-exports.stdout
- + testsuite/tests/linear/should_compile/T26332.hs
- testsuite/tests/linear/should_compile/all.T
- testsuite/tests/partial-sigs/should_compile/T10403.stderr
- testsuite/tests/partial-sigs/should_fail/T10615.stderr
- + testsuite/tests/patsyn/should_compile/T26331.hs
- + testsuite/tests/patsyn/should_compile/T26331a.hs
- testsuite/tests/patsyn/should_compile/all.T
- testsuite/tests/perf/should_run/T3586.hs
- testsuite/tests/perf/should_run/all.T
- testsuite/tests/plugins/plugins10.stdout
- + testsuite/tests/rep-poly/NoEtaRequired.hs
- testsuite/tests/rep-poly/T21906.stderr
- testsuite/tests/rep-poly/all.T
- testsuite/tests/splice-imports/SI29.stderr
- testsuite/tests/th/T11452.stderr
- testsuite/tests/th/T15321.stderr
- testsuite/tests/th/T7276.stderr
- testsuite/tests/th/TH_NestedSplicesFail3.stderr
- testsuite/tests/th/TH_NestedSplicesFail4.stderr
- + testsuite/tests/typecheck/should_compile/T26225.hs
- + testsuite/tests/typecheck/should_compile/T26225b.hs
- + testsuite/tests/typecheck/should_compile/T26277.hs
- testsuite/tests/typecheck/should_compile/all.T
- − testsuite/tests/typecheck/should_fail/T12563.stderr
- testsuite/tests/typecheck/should_fail/T14618.stderr
- testsuite/tests/typecheck/should_fail/T6022.stderr
- testsuite/tests/typecheck/should_fail/T8883.stderr
- testsuite/tests/typecheck/should_fail/all.T
- testsuite/tests/typecheck/should_fail/tcfail140.stderr
- utils/deriveConstants/Main.hs
- utils/ghc-toolchain/src/GHC/Toolchain/Tools/MergeObjs.hs
- utils/haddock/haddock-api/haddock-api.cabal
- utils/haddock/haddock.cabal
- utils/jsffi/dyld.mjs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/4f4d17de9e943b0a40bbccd01924c2…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/4f4d17de9e943b0a40bbccd01924c2…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/backports-9.14] 2 commits: testsuite: Accept new base-exports output
by Ben Gamari (@bgamari) 25 Oct '25
by Ben Gamari (@bgamari) 25 Oct '25
25 Oct '25
Ben Gamari pushed to branch wip/backports-9.14 at Glasgow Haskell Compiler / GHC
Commits:
3b69a8ee by Ben Gamari at 2025-10-25T13:47:11-04:00
testsuite: Accept new base-exports output
- - - - -
4f4d17de by Ben Gamari at 2025-10-25T13:47:31-04:00
template-haskell: Accept T15321
- - - - -
2 changed files:
- testsuite/tests/interface-stability/base-exports.stdout
- testsuite/tests/th/T15321.stderr
Changes:
=====================================
testsuite/tests/interface-stability/base-exports.stdout
=====================================
@@ -234,7 +234,7 @@ module Control.Exception where
data ErrorCall = ErrorCall GHC.Internal.Base.String
pattern ErrorCallWithLocation :: GHC.Internal.Base.String -> GHC.Internal.Base.String -> ErrorCall
type Exception :: * -> Constraint
- class (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
+ class (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
toException :: e -> SomeException
fromException :: SomeException -> GHC.Internal.Maybe.Maybe e
displayException :: e -> GHC.Internal.Base.String
@@ -311,7 +311,7 @@ module Control.Exception where
module Control.Exception.Annotation where
-- Safety: None
type ExceptionAnnotation :: * -> Constraint
- class ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a => ExceptionAnnotation a where
+ class ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a => ExceptionAnnotation a where
displayExceptionAnnotation :: a -> GHC.Internal.Base.String
default displayExceptionAnnotation :: GHC.Internal.Show.Show a => a -> GHC.Internal.Base.String
{-# MINIMAL #-}
@@ -353,7 +353,7 @@ module Control.Exception.Base where
data ErrorCall = ErrorCall GHC.Internal.Base.String
pattern ErrorCallWithLocation :: GHC.Internal.Base.String -> GHC.Internal.Base.String -> ErrorCall
type Exception :: * -> Constraint
- class (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
+ class (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
toException :: e -> SomeException
fromException :: SomeException -> GHC.Internal.Maybe.Maybe e
displayException :: e -> GHC.Internal.Base.String
@@ -866,11 +866,11 @@ module Data.Data where
type TyCon :: *
data TyCon = ...
type TypeRep :: *
- type TypeRep = ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep
+ type TypeRep = ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep
type Typeable :: forall k. k -> Constraint
class Typeable a where
...
- {-# MINIMAL ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
+ {-# MINIMAL ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
cast :: forall a b. (Typeable a, Typeable b) => a -> GHC.Internal.Maybe.Maybe b
constrFields :: Constr -> [GHC.Internal.Base.String]
constrFixity :: Constr -> Fixity
@@ -913,7 +913,7 @@ module Data.Data where
showConstr :: Constr -> GHC.Internal.Base.String
showsTypeRep :: TypeRep -> GHC.Internal.Show.ShowS
splitTyConApp :: TypeRep -> (TyCon, [TypeRep])
- trLiftedRep :: ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.TypeRep GHC.Internal.Types.LiftedRep
+ trLiftedRep :: ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.TypeRep GHC.Internal.Types.LiftedRep
tyConFingerprint :: TyCon -> GHC.Internal.Fingerprint.Type.Fingerprint
tyConModule :: TyCon -> GHC.Internal.Base.String
tyConName :: TyCon -> GHC.Internal.Base.String
@@ -937,14 +937,14 @@ module Data.Dynamic where
-- Safety: Safe
type Dynamic :: *
data Dynamic where
- Dynamic :: forall a. ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.TypeRep a -> a -> Dynamic
+ Dynamic :: forall a. ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.TypeRep a -> a -> Dynamic
type Typeable :: forall k. k -> Constraint
class Typeable a where
...
- {-# MINIMAL ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
+ {-# MINIMAL ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
dynApp :: Dynamic -> Dynamic -> Dynamic
dynApply :: Dynamic -> Dynamic -> GHC.Internal.Maybe.Maybe Dynamic
- dynTypeRep :: Dynamic -> ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep
+ dynTypeRep :: Dynamic -> ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep
fromDyn :: forall a. Typeable a => Dynamic -> a -> a
fromDynamic :: forall a. Typeable a => Dynamic -> GHC.Internal.Maybe.Maybe a
toDyn :: forall a. Typeable a => a -> Dynamic
@@ -1832,11 +1832,11 @@ module Data.Typeable where
type TyCon :: *
data TyCon = ...
type TypeRep :: *
- type TypeRep = ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep
+ type TypeRep = ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep
type Typeable :: forall k. k -> Constraint
class Typeable a where
...
- {-# MINIMAL ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
+ {-# MINIMAL ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
cast :: forall a b. (Typeable a, Typeable b) => a -> GHC.Internal.Maybe.Maybe b
decT :: forall {k} (a :: k) (b :: k). (Typeable a, Typeable b) => GHC.Internal.Data.Either.Either ((a :~: b) -> GHC.Internal.Base.Void) (a :~: b)
eqT :: forall {k} (a :: k) (b :: k). (Typeable a, Typeable b) => GHC.Internal.Maybe.Maybe (a :~: b)
@@ -1851,7 +1851,7 @@ module Data.Typeable where
rnfTypeRep :: TypeRep -> ()
showsTypeRep :: TypeRep -> GHC.Internal.Show.ShowS
splitTyConApp :: TypeRep -> (TyCon, [TypeRep])
- trLiftedRep :: ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.TypeRep GHC.Internal.Types.LiftedRep
+ trLiftedRep :: ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.TypeRep GHC.Internal.Types.LiftedRep
tyConFingerprint :: TyCon -> GHC.Internal.Fingerprint.Type.Fingerprint
tyConModule :: TyCon -> GHC.Internal.Base.String
tyConName :: TyCon -> GHC.Internal.Base.String
@@ -5266,7 +5266,7 @@ module GHC.Event where
type EventManager :: *
data EventManager = ...
type FdKey :: *
- data FdKey = ghc-internal-9.1300.0:GHC.Internal.Event.Manager.FdKey {keyFd :: {-# UNPACK #-} !GHC.Internal.System.Posix.Types.Fd, ...}
+ data FdKey = ghc-internal-9.1400.0:GHC.Internal.Event.Manager.FdKey {keyFd :: {-# UNPACK #-} !GHC.Internal.System.Posix.Types.Fd, ...}
type IOCallback :: *
type IOCallback = FdKey -> Event -> GHC.Internal.Types.IO ()
type Lifetime :: *
@@ -5297,9 +5297,9 @@ module GHC.Event.TimeOut where
type TimeoutEdit :: *
type TimeoutEdit = TimeoutQueue -> TimeoutQueue
type TimeoutKey :: *
- newtype TimeoutKey = TK ghc-internal-9.1300.0:GHC.Internal.Event.Unique.Unique
+ newtype TimeoutKey = TK ghc-internal-9.1400.0:GHC.Internal.Event.Unique.Unique
type TimeoutQueue :: *
- type TimeoutQueue = ghc-internal-9.1300.0:GHC.Internal.Event.PSQ.PSQ TimeoutCallback
+ type TimeoutQueue = ghc-internal-9.1400.0:GHC.Internal.Event.PSQ.PSQ TimeoutCallback
module GHC.Exception where
-- Safety: Safe
@@ -5311,7 +5311,7 @@ module GHC.Exception where
data ErrorCall = ErrorCall GHC.Internal.Base.String
pattern ErrorCallWithLocation :: GHC.Internal.Base.String -> GHC.Internal.Base.String -> ErrorCall
type Exception :: * -> Constraint
- class (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
+ class (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
toException :: e -> SomeException
fromException :: SomeException -> GHC.Internal.Maybe.Maybe e
displayException :: e -> GHC.Internal.Base.String
@@ -5339,7 +5339,7 @@ module GHC.Exception.Type where
type ArithException :: *
data ArithException = Overflow | Underflow | LossOfPrecision | DivideByZero | Denormal | RatioZeroDenominator
type Exception :: * -> Constraint
- class (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
+ class (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable e, GHC.Internal.Show.Show e) => Exception e where
toException :: e -> SomeException
fromException :: SomeException -> GHC.Internal.Maybe.Maybe e
displayException :: e -> GHC.Internal.Base.String
@@ -7873,8 +7873,8 @@ module GHC.IO.Handle where
hTryLock :: Handle -> LockMode -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
hWaitForInput :: Handle -> GHC.Internal.Types.Int -> GHC.Internal.Types.IO GHC.Internal.Types.Bool
isEOF :: GHC.Internal.Types.IO GHC.Internal.Types.Bool
- mkDuplexHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> NewlineMode -> GHC.Internal.Types.IO Handle
- mkFileHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.IOMode.IOMode -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> NewlineMode -> GHC.Internal.Types.IO Handle
+ mkDuplexHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> NewlineMode -> GHC.Internal.Types.IO Handle
+ mkFileHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.IOMode.IOMode -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> NewlineMode -> GHC.Internal.Types.IO Handle
nativeNewline :: Newline
nativeNewlineMode :: NewlineMode
noNewlineTranslation :: NewlineMode
@@ -7924,11 +7924,11 @@ module GHC.IO.Handle.Internals where
ioe_notReadable :: forall a. GHC.Internal.Types.IO a
ioe_notWritable :: forall a. GHC.Internal.Types.IO a
ioe_semiclosedHandle :: forall a. GHC.Internal.Types.IO a
- mkDuplexHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
- mkDuplexHandleNoFinalizer :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
- mkFileHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.IOMode.IOMode -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
- mkFileHandleNoFinalizer :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.IOMode.IOMode -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
- mkHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.Handle.Types.HandleType -> GHC.Internal.Types.Bool -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Maybe.Maybe HandleFinalizer -> GHC.Internal.Maybe.Maybe (GHC.Internal.MVar.MVar GHC.Internal.IO.Handle.Types.Handle__) -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
+ mkDuplexHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
+ mkDuplexHandleNoFinalizer :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
+ mkFileHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.IOMode.IOMode -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
+ mkFileHandleNoFinalizer :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.IOMode.IOMode -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
+ mkHandle :: forall dev. (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) => dev -> GHC.Internal.IO.FilePath -> GHC.Internal.IO.Handle.Types.HandleType -> GHC.Internal.Types.Bool -> GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.NewlineMode -> GHC.Internal.Maybe.Maybe HandleFinalizer -> GHC.Internal.Maybe.Maybe (GHC.Internal.MVar.MVar GHC.Internal.IO.Handle.Types.Handle__) -> GHC.Internal.Types.IO GHC.Internal.IO.Handle.Types.Handle
openTextEncoding :: forall a. GHC.Internal.Maybe.Maybe GHC.Internal.IO.Encoding.Types.TextEncoding -> GHC.Internal.IO.Handle.Types.HandleType -> (forall es ds. GHC.Internal.Maybe.Maybe (GHC.Internal.IO.Encoding.Types.TextEncoder es) -> GHC.Internal.Maybe.Maybe (GHC.Internal.IO.Encoding.Types.TextDecoder ds) -> GHC.Internal.Types.IO a) -> GHC.Internal.Types.IO a
readTextDevice :: GHC.Internal.IO.Handle.Types.Handle__ -> GHC.Internal.IO.Buffer.CharBuffer -> GHC.Internal.Types.IO GHC.Internal.IO.Buffer.CharBuffer
readTextDeviceNonBlocking :: GHC.Internal.IO.Handle.Types.Handle__ -> GHC.Internal.IO.Buffer.CharBuffer -> GHC.Internal.Types.IO GHC.Internal.IO.Buffer.CharBuffer
@@ -7992,7 +7992,7 @@ module GHC.IO.Handle.Types where
type Handle__ :: *
data Handle__
= forall dev enc_state dec_state.
- (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) =>
+ (GHC.Internal.IO.Device.RawIO dev, GHC.Internal.IO.Device.IODevice dev, GHC.Internal.IO.BufferedIO.BufferedIO dev, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable dev) =>
Handle__ {haDevice :: !dev,
haType :: HandleType,
haByteBuffer :: {-# UNPACK #-} !(GHC.Internal.IORef.IORef (GHC.Internal.IO.Buffer.Buffer GHC.Internal.Word.Word8)),
@@ -9396,7 +9396,7 @@ module GHC.StaticPtr where
-- Safety: None
type IsStatic :: (* -> *) -> Constraint
class IsStatic p where
- fromStaticPtr :: forall a. ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a => StaticPtr a -> p a
+ fromStaticPtr :: forall a. ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a => StaticPtr a -> p a
{-# MINIMAL fromStaticPtr #-}
type StaticKey :: *
type StaticKey = GHC.Internal.Fingerprint.Type.Fingerprint
@@ -10777,8 +10777,8 @@ module Type.Reflection where
data (:~~:) a b where
HRefl :: forall {k1} (a :: k1). (:~~:) a a
pattern App :: forall k2 (t :: k2). () => forall k1 (a :: k1 -> k2) (b :: k1). (t ~ a b) => TypeRep a -> TypeRep b -> TypeRep t
- pattern Con :: forall k (a :: k). () => ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.NotApplication a => TyCon -> TypeRep a
- pattern Con' :: forall k (a :: k). () => ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.NotApplication a => TyCon -> [SomeTypeRep] -> TypeRep a
+ pattern Con :: forall k (a :: k). () => ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.NotApplication a => TyCon -> TypeRep a
+ pattern Con' :: forall k (a :: k). () => ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.NotApplication a => TyCon -> [SomeTypeRep] -> TypeRep a
pattern Fun :: forall k (fun :: k). () => forall (r1 :: GHC.Internal.Types.RuntimeRep) (r2 :: GHC.Internal.Types.RuntimeRep) (arg :: TYPE r1) (res :: TYPE r2). (k ~ *, fun ~~ (arg -> res)) => TypeRep arg -> TypeRep res -> TypeRep fun
type Module :: *
data Module = ...
@@ -10795,7 +10795,7 @@ module Type.Reflection where
type Typeable :: forall k. k -> Constraint
class Typeable a where
...
- {-# MINIMAL ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
+ {-# MINIMAL ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.typeRep# #-}
decTypeRep :: forall k1 k2 (a :: k1) (b :: k2). TypeRep a -> TypeRep b -> GHC.Internal.Data.Either.Either ((a :~~: b) -> GHC.Internal.Base.Void) (a :~~: b)
eqTypeRep :: forall k1 k2 (a :: k1) (b :: k2). TypeRep a -> TypeRep b -> GHC.Internal.Maybe.Maybe (a :~~: b)
moduleName :: Module -> GHC.Internal.Base.String
@@ -10830,9 +10830,9 @@ module Type.Reflection.Unsafe where
data TypeRep a where
...
mkTrApp :: forall k1 k2 (a :: k1 -> k2) (b :: k1). TypeRep a -> TypeRep b -> TypeRep (a b)
- mkTrCon :: forall k (a :: k). TyCon -> [ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep] -> TypeRep a
+ mkTrCon :: forall k (a :: k). TyCon -> [ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep] -> TypeRep a
mkTyCon :: GHC.Internal.Base.String -> GHC.Internal.Base.String -> GHC.Internal.Base.String -> GHC.Internal.Types.Int -> KindRep -> TyCon
- someTypeRepFingerprint :: ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -> GHC.Internal.Fingerprint.Type.Fingerprint
+ someTypeRepFingerprint :: ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -> GHC.Internal.Fingerprint.Type.Fingerprint
tyConFingerprint :: TyCon -> GHC.Internal.Fingerprint.Type.Fingerprint
tyConKindArgs :: TyCon -> GHC.Internal.Types.Int
tyConKindRep :: TyCon -> KindRep
@@ -11338,9 +11338,9 @@ instance forall a. GHC.Internal.Base.Monoid a => GHC.Internal.Base.Monoid (GHC.I
instance forall a. (GHC.Internal.Classes.Ord a, GHC.Internal.Enum.Bounded a) => GHC.Internal.Base.Monoid (Data.Semigroup.Max a) -- Defined in ‘Data.Semigroup’
instance forall a. (GHC.Internal.Classes.Ord a, GHC.Internal.Enum.Bounded a) => GHC.Internal.Base.Monoid (Data.Semigroup.Min a) -- Defined in ‘Data.Semigroup’
instance forall m. GHC.Internal.Base.Monoid m => GHC.Internal.Base.Monoid (Data.Semigroup.WrappedMonoid m) -- Defined in ‘Data.Semigroup’
-instance GHC.Internal.Base.Monoid ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Base.Monoid ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Base.Monoid ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Base.Monoid ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Base.Monoid ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Base.Monoid ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
instance forall k (f :: k -> *) (p :: k) (g :: k -> *). (GHC.Internal.Base.Monoid (f p), GHC.Internal.Base.Monoid (g p)) => GHC.Internal.Base.Monoid ((GHC.Internal.Generics.:*:) f g p) -- Defined in ‘GHC.Internal.Generics’
instance forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Internal.Base.Monoid (f (g p)) => GHC.Internal.Base.Monoid ((GHC.Internal.Generics.:.:) f g p) -- Defined in ‘GHC.Internal.Generics’
instance forall a. (GHC.Internal.Generics.Generic a, GHC.Internal.Base.Monoid (GHC.Internal.Generics.Rep a ())) => GHC.Internal.Base.Monoid (GHC.Internal.Generics.Generically a) -- Defined in ‘GHC.Internal.Generics’
@@ -11399,9 +11399,9 @@ instance forall a. GHC.Internal.Base.Semigroup (Data.Semigroup.Last a) -- Define
instance forall a. GHC.Internal.Classes.Ord a => GHC.Internal.Base.Semigroup (Data.Semigroup.Max a) -- Defined in ‘Data.Semigroup’
instance forall a. GHC.Internal.Classes.Ord a => GHC.Internal.Base.Semigroup (Data.Semigroup.Min a) -- Defined in ‘Data.Semigroup’
instance forall m. GHC.Internal.Base.Monoid m => GHC.Internal.Base.Semigroup (Data.Semigroup.WrappedMonoid m) -- Defined in ‘Data.Semigroup’
-instance GHC.Internal.Base.Semigroup ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Base.Semigroup ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Base.Semigroup ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Base.Semigroup ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Base.Semigroup ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Base.Semigroup ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
instance forall k (f :: k -> *) (p :: k) (g :: k -> *). (GHC.Internal.Base.Semigroup (f p), GHC.Internal.Base.Semigroup (g p)) => GHC.Internal.Base.Semigroup ((GHC.Internal.Generics.:*:) f g p) -- Defined in ‘GHC.Internal.Generics’
instance forall k2 k1 (f :: k2 -> *) (g :: k1 -> k2) (p :: k1). GHC.Internal.Base.Semigroup (f (g p)) => GHC.Internal.Base.Semigroup ((GHC.Internal.Generics.:.:) f g p) -- Defined in ‘GHC.Internal.Generics’
instance forall a. (GHC.Internal.Generics.Generic a, GHC.Internal.Base.Semigroup (GHC.Internal.Generics.Rep a ())) => GHC.Internal.Base.Semigroup (GHC.Internal.Generics.Generically a) -- Defined in ‘GHC.Internal.Generics’
@@ -11553,8 +11553,8 @@ instance GHC.Internal.Classes.Eq GHC.Internal.Data.Data.ConstrRep -- Defined in
instance GHC.Internal.Classes.Eq GHC.Internal.Data.Data.DataRep -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Classes.Eq GHC.Internal.Data.Data.Fixity -- Defined in ‘GHC.Internal.Data.Data’
instance forall k (s :: k). GHC.Internal.Classes.Eq (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
-instance GHC.Internal.Classes.Eq ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal’
-instance forall k (a :: k). GHC.Internal.Classes.Eq (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal’
+instance GHC.Internal.Classes.Eq ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal’
+instance forall k (a :: k). GHC.Internal.Classes.Eq (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal’
instance forall a b. (GHC.Internal.Classes.Eq a, GHC.Internal.Classes.Eq b) => GHC.Internal.Classes.Eq (GHC.Internal.Data.Either.Either a b) -- Defined in ‘GHC.Internal.Data.Either’
instance forall k (a :: k). GHC.Internal.Classes.Eq (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Classes.Eq (f (g a)) => GHC.Internal.Classes.Eq (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
@@ -11630,13 +11630,13 @@ instance forall a. GHC.Internal.Classes.Eq (GHC.Internal.Foreign.C.ConstPtr.Cons
instance forall i e. (GHC.Internal.Ix.Ix i, GHC.Internal.Classes.Eq e) => GHC.Internal.Classes.Eq (GHC.Internal.Arr.Array i e) -- Defined in ‘GHC.Internal.Arr’
instance forall s i e. GHC.Internal.Classes.Eq (GHC.Internal.Arr.STArray s i e) -- Defined in ‘GHC.Internal.Arr’
instance GHC.Internal.Classes.Eq GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
-instance GHC.Internal.Classes.Eq ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Classes.Eq ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Classes.Eq ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Classes.Eq ghc-internal-9.1300.0:GHC.Internal.Event.Manager.FdKey -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Manager’
-instance GHC.Internal.Classes.Eq ghc-internal-9.1300.0:GHC.Internal.Event.Manager.State -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Manager’
+instance GHC.Internal.Classes.Eq ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Classes.Eq ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Classes.Eq ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Classes.Eq ghc-internal-9.1400.0:GHC.Internal.Event.Manager.FdKey -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Manager’
+instance GHC.Internal.Classes.Eq ghc-internal-9.1400.0:GHC.Internal.Event.Manager.State -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Manager’
instance GHC.Internal.Classes.Eq GHC.Internal.Event.TimeOut.TimeoutKey -- Defined in ‘GHC.Internal.Event.TimeOut’
-instance GHC.Internal.Classes.Eq ghc-internal-9.1300.0:GHC.Internal.Event.TimerManager.State -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.TimerManager’
+instance GHC.Internal.Classes.Eq ghc-internal-9.1400.0:GHC.Internal.Event.TimerManager.State -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.TimerManager’
instance GHC.Internal.Classes.Eq GHC.Internal.Stack.Types.SrcLoc -- Defined in ‘GHC.Internal.Stack.Types’
instance GHC.Internal.Classes.Eq GHC.Internal.Exts.SpecConstrAnnotation -- Defined in ‘GHC.Internal.Exts’
instance GHC.Internal.Classes.Eq GHC.Internal.Fingerprint.Type.Fingerprint -- Defined in ‘GHC.Internal.Fingerprint.Type’
@@ -11731,8 +11731,8 @@ instance GHC.Internal.Classes.Ord GHC.Internal.Unicode.GeneralCategory -- Define
instance forall k (a :: k) (b :: k). GHC.Internal.Classes.Ord (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
instance forall k1 k2 (a :: k1) (b :: k2). GHC.Internal.Classes.Ord (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Type.Equality’
instance forall k (s :: k). GHC.Internal.Classes.Ord (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
-instance GHC.Internal.Classes.Ord ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal’
-instance forall k (a :: k). GHC.Internal.Classes.Ord (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal’
+instance GHC.Internal.Classes.Ord ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal’
+instance forall k (a :: k). GHC.Internal.Classes.Ord (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal’
instance forall a b. (GHC.Internal.Classes.Ord a, GHC.Internal.Classes.Ord b) => GHC.Internal.Classes.Ord (GHC.Internal.Data.Either.Either a b) -- Defined in ‘GHC.Internal.Data.Either’
instance forall k (a :: k). GHC.Internal.Classes.Ord (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1) (a :: k2). GHC.Internal.Classes.Ord (f (g a)) => GHC.Internal.Classes.Ord (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
@@ -11912,38 +11912,62 @@ instance GHC.Internal.Control.Monad.Zip.MonadZip GHC.Internal.Data.Semigroup.Int
instance GHC.Internal.Control.Monad.Zip.MonadZip GHC.Internal.Generics.U1 -- Defined in ‘GHC.Internal.Control.Monad.Zip’
instance GHC.Internal.Control.Monad.Zip.MonadZip Data.Complex.Complex -- Defined in ‘Data.Complex’
instance [safe] forall (f :: * -> *) (g :: * -> *). (GHC.Internal.Control.Monad.Zip.MonadZip f, GHC.Internal.Control.Monad.Zip.MonadZip g) => GHC.Internal.Control.Monad.Zip.MonadZip (Data.Functor.Product.Product f g) -- Defined in ‘Data.Functor.Product’
-instance forall (a :: * -> * -> *) b c. (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable b, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable c, GHC.Internal.Data.Data.Data (a b c)) => GHC.Internal.Data.Data.Data (Control.Applicative.WrappedArrow a b c) -- Defined in ‘Control.Applicative’
-instance forall (m :: * -> *) a. (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable m, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a, GHC.Internal.Data.Data.Data (m a)) => GHC.Internal.Data.Data.Data (Control.Applicative.WrappedMonad m a) -- Defined in ‘Control.Applicative’
+instance forall (a :: * -> * -> *) b c. (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable b, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable c, GHC.Internal.Data.Data.Data (a b c)) => GHC.Internal.Data.Data.Data (Control.Applicative.WrappedArrow a b c) -- Defined in ‘Control.Applicative’
+instance forall (m :: * -> *) a. (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable m, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a, GHC.Internal.Data.Data.Data (m a)) => GHC.Internal.Data.Data.Data (Control.Applicative.WrappedMonad m a) -- Defined in ‘Control.Applicative’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Functor.ZipList.ZipList a) -- Defined in ‘GHC.Internal.Functor.ZipList’
instance GHC.Internal.Data.Data.Data Data.Array.Byte.ByteArray -- Defined in ‘Data.Array.Byte’
-instance forall s. ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable s => GHC.Internal.Data.Data.Data (Data.Array.Byte.MutableByteArray s) -- Defined in ‘Data.Array.Byte’
+instance forall s. ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable s => GHC.Internal.Data.Data.Data (Data.Array.Byte.MutableByteArray s) -- Defined in ‘Data.Array.Byte’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
-instance forall (f :: * -> *) (g :: * -> *) p. (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable g, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f p), GHC.Internal.Data.Data.Data (g p)) => GHC.Internal.Data.Data.Data ((GHC.Internal.Generics.:*:) f g p) -- Defined in ‘GHC.Internal.Data.Data’
-instance forall (f :: * -> *) (g :: * -> *) p. (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable g, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f p), GHC.Internal.Data.Data.Data (g p)) => GHC.Internal.Data.Data.Data ((GHC.Internal.Generics.:+:) f g p) -- Defined in ‘GHC.Internal.Data.Data’
-instance forall (f :: * -> *) (g :: * -> *) p. (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable g, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f (g p))) => GHC.Internal.Data.Data.Data ((GHC.Internal.Generics.:.:) f g p) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall (f :: * -> *) (g :: * -> *) p. (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable g, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f p), GHC.Internal.Data.Data.Data (g p)) => GHC.Internal.Data.Data.Data ((GHC.Internal.Generics.:*:) f g p) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall (f :: * -> *) (g :: * -> *) p. (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable g, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f p), GHC.Internal.Data.Data.Data (g p)) => GHC.Internal.Data.Data.Data ((GHC.Internal.Generics.:+:) f g p) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall (f :: * -> *) (g :: * -> *) p. (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable g, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f (g p))) => GHC.Internal.Data.Data.Data ((GHC.Internal.Generics.:.:) f g p) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b. (a ~ b, GHC.Internal.Data.Data.Data a) => GHC.Internal.Data.Data.Data (a GHC.Internal.Data.Type.Equality.:~: b) -- Defined in ‘GHC.Internal.Data.Data’
-instance forall i j (a :: i) (b :: j). (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable i, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable j, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable b, a ~~ b) => GHC.Internal.Data.Data.Data (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall i j (a :: i) (b :: j). (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable i, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable j, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable b, a ~~ b) => GHC.Internal.Data.Data.Data (a GHC.Internal.Data.Type.Equality.:~~: b) -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Data.Semigroup.Internal.All -- Defined in ‘GHC.Internal.Data.Data’
-instance forall (f :: * -> *) a. (GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Semigroup.Internal.Alt f a) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall (f :: * -> *) a. (GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Semigroup.Internal.Alt f a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.AnnLookup -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.AnnTarget -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Data.Semigroup.Internal.Any -- Defined in ‘GHC.Internal.Data.Data’
-instance forall (f :: * -> *) a. (GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Monoid.Ap f a) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall (f :: * -> *) a. (GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Monoid.Ap f a) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b, GHC.Internal.Ix.Ix a) => GHC.Internal.Data.Data.Data (GHC.Internal.Arr.Array a b) -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Generics.Associativity -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Bang -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.BndrVis -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Body -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Types.Bool -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Bytes -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Callconv -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Types.Char -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Clause -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b. (Coercible a b, GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Type.Coercion.Coercion a b) -- Defined in ‘GHC.Internal.Data.Data’
-instance forall k a (b :: k). (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable k, GHC.Internal.Data.Data.Data a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable b) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Con -- Defined in ‘GHC.Internal.Data.Data’
+instance forall k a (b :: k). (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable k, GHC.Internal.Data.Data.Data a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable b) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Foreign.C.ConstPtr.ConstPtr a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Dec -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DecidedStrictness -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Generics.DecidedStrictness -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DerivClause -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DerivStrategy -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DocLoc -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Ord.Down a) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Semigroup.Internal.Dual a) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b) => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Either.Either a b) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Exp -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.FamilyResultSig -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Monoid.First a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Fixity -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Generics.Fixity -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.FixityDirection -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Foreign -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.ForeignPtr.ForeignPtr a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.FunDep -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Guard -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Functor.Identity.Identity a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Info -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.InjectivityAnn -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Inline -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Types.Int -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Int.Int16 -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Int.Int32 -- Defined in ‘GHC.Internal.Data.Data’
@@ -11951,23 +11975,50 @@ instance GHC.Internal.Data.Data.Data GHC.Internal.Int.Int64 -- Defined in ‘GHC
instance GHC.Internal.Data.Data.Data GHC.Internal.Int.Int8 -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Foreign.Ptr.IntPtr -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Bignum.Integer.Integer -- Defined in ‘GHC.Internal.Data.Data’
-instance forall i p c. (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable i, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data c) => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.K1 i c p) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall i p c. (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable i, GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data c) => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.K1 i c p) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Monoid.Last a) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data [a] -- Defined in ‘GHC.Internal.Data.Data’
-instance forall p (f :: * -> *) (c :: GHC.Internal.Generics.Meta) i. (GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f p), ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable c, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable i, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f) => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.M1 i c f p) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Lit -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Loc -- Defined in ‘GHC.Internal.Data.Data’
+instance forall p (f :: * -> *) (c :: GHC.Internal.Generics.Meta) i. (GHC.Internal.Data.Data.Data p, GHC.Internal.Data.Data.Data (f p), ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable c, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable i, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f) => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.M1 i c f p) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Match -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Maybe.Maybe a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.ModName -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Module -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.ModuleInfo -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Name -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.NameFlavour -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.NameSpace -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.NamespaceSpecifier -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Bignum.Natural.Natural -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Base.NonEmpty a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.OccName -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Types.Ordering -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Overlap -- Defined in ‘GHC.Internal.Data.Data’
instance forall p. GHC.Internal.Data.Data.Data p => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.Par1 p) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Pat -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.PatSynArgs -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.PatSynDir -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Phases -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.PkgName -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Pragma -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Semigroup.Internal.Product a) -- Defined in ‘GHC.Internal.Data.Data’
instance forall t. GHC.Internal.Data.Data.Data t => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Proxy.Proxy t) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Ptr.Ptr a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Range -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. (GHC.Internal.Data.Data.Data a, GHC.Internal.Real.Integral a) => GHC.Internal.Data.Data.Data (GHC.Internal.Real.Ratio a) -- Defined in ‘GHC.Internal.Data.Data’
-instance forall (f :: * -> *) p. (GHC.Internal.Data.Data.Data (f p), ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f, GHC.Internal.Data.Data.Data p) => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.Rec1 f p) -- Defined in ‘GHC.Internal.Data.Data’
+instance forall (f :: * -> *) p. (GHC.Internal.Data.Data.Data (f p), ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f, GHC.Internal.Data.Data.Data p) => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.Rec1 f p) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Role -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.RuleBndr -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.RuleMatch -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Safety -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (Solo a) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.SourceStrictness -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Generics.SourceStrictness -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.SourceUnpackedness -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Generics.SourceUnpackedness -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Specificity -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Stmt -- Defined in ‘GHC.Internal.Data.Data’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (GHC.Internal.Data.Semigroup.Internal.Sum a) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b) => GHC.Internal.Data.Data.Data (a, b) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b c. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b, GHC.Internal.Data.Data.Data c) => GHC.Internal.Data.Data.Data (a, b, c) -- Defined in ‘GHC.Internal.Data.Data’
@@ -11975,6 +12026,11 @@ instance forall a b c d. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.
instance forall a b c d e. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b, GHC.Internal.Data.Data.Data c, GHC.Internal.Data.Data.Data d, GHC.Internal.Data.Data.Data e) => GHC.Internal.Data.Data.Data (a, b, c, d, e) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b c d e f. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b, GHC.Internal.Data.Data.Data c, GHC.Internal.Data.Data.Data d, GHC.Internal.Data.Data.Data e, GHC.Internal.Data.Data.Data f) => GHC.Internal.Data.Data.Data (a, b, c, d, e, f) -- Defined in ‘GHC.Internal.Data.Data’
instance forall a b c d e f g. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b, GHC.Internal.Data.Data.Data c, GHC.Internal.Data.Data.Data d, GHC.Internal.Data.Data.Data e, GHC.Internal.Data.Data.Data f, GHC.Internal.Data.Data.Data g) => GHC.Internal.Data.Data.Data (a, b, c, d, e, f, g) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.TyLit -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.TySynEqn -- Defined in ‘GHC.Internal.Data.Data’
+instance forall flag. GHC.Internal.Data.Data.Data flag => GHC.Internal.Data.Data.Data (GHC.Internal.TH.Syntax.TyVarBndr flag) -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Type -- Defined in ‘GHC.Internal.Data.Data’
+instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.TypeFamilyHead -- Defined in ‘GHC.Internal.Data.Data’
instance forall p. GHC.Internal.Data.Data.Data p => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.U1 p) -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data () -- Defined in ‘GHC.Internal.Data.Data’
instance forall p. GHC.Internal.Data.Data.Data p => GHC.Internal.Data.Data.Data (GHC.Internal.Generics.V1 p) -- Defined in ‘GHC.Internal.Data.Data’
@@ -11986,10 +12042,10 @@ instance GHC.Internal.Data.Data.Data GHC.Internal.Word.Word32 -- Defined in ‘G
instance GHC.Internal.Data.Data.Data GHC.Internal.Word.Word64 -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Word.Word8 -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Data.Data.Data GHC.Internal.Foreign.Ptr.WordPtr -- Defined in ‘GHC.Internal.Data.Data’
-instance forall k (a :: k). (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable k, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a) => GHC.Internal.Data.Data.Data (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
-instance forall k1 (f :: k1 -> *) k2 (g :: k2 -> k1) (a :: k2). (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable g, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable k1, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable k2, GHC.Internal.Data.Data.Data (f (g a))) => GHC.Internal.Data.Data.Data (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
-instance [safe] forall k (f :: k -> *) (g :: k -> *) (a :: k). (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable g, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable k, GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data (g a)) => GHC.Internal.Data.Data.Data (Data.Functor.Product.Product f g a) -- Defined in ‘Data.Functor.Product’
-instance [safe] forall k (f :: k -> *) (g :: k -> *) (a :: k). (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable g, ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.Typeable k, GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data (g a)) => GHC.Internal.Data.Data.Data (Data.Functor.Sum.Sum f g a) -- Defined in ‘Data.Functor.Sum’
+instance forall k (a :: k). (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable k, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a) => GHC.Internal.Data.Data.Data (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
+instance forall k1 (f :: k1 -> *) k2 (g :: k2 -> k1) (a :: k2). (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable g, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable k1, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable k2, GHC.Internal.Data.Data.Data (f (g a))) => GHC.Internal.Data.Data.Data (Data.Functor.Compose.Compose f g a) -- Defined in ‘Data.Functor.Compose’
+instance [safe] forall k (f :: k -> *) (g :: k -> *) (a :: k). (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable g, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable k, GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data (g a)) => GHC.Internal.Data.Data.Data (Data.Functor.Product.Product f g a) -- Defined in ‘Data.Functor.Product’
+instance [safe] forall k (f :: k -> *) (g :: k -> *) (a :: k). (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable f, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable g, ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable k, GHC.Internal.Data.Data.Data (f a), GHC.Internal.Data.Data.Data (g a)) => GHC.Internal.Data.Data.Data (Data.Functor.Sum.Sum f g a) -- Defined in ‘Data.Functor.Sum’
instance forall a b. (GHC.Internal.Data.Data.Data a, GHC.Internal.Data.Data.Data b) => GHC.Internal.Data.Data.Data (Data.Semigroup.Arg a b) -- Defined in ‘Data.Semigroup’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (Data.Semigroup.First a) -- Defined in ‘Data.Semigroup’
instance forall a. GHC.Internal.Data.Data.Data a => GHC.Internal.Data.Data.Data (Data.Semigroup.Last a) -- Defined in ‘Data.Semigroup’
@@ -12097,7 +12153,7 @@ instance GHC.Internal.Data.Type.Equality.TestEquality GHC.Internal.TypeLits.SCha
instance GHC.Internal.Data.Type.Equality.TestEquality GHC.Internal.TypeLits.SSymbol -- Defined in ‘GHC.Internal.TypeLits’
instance forall k (a :: k). GHC.Internal.Data.Type.Equality.TestEquality ((GHC.Internal.Data.Type.Equality.:~:) a) -- Defined in ‘GHC.Internal.Data.Type.Equality’
instance forall k1 k (a :: k1). GHC.Internal.Data.Type.Equality.TestEquality ((GHC.Internal.Data.Type.Equality.:~~:) a) -- Defined in ‘GHC.Internal.Data.Type.Equality’
-instance forall k. GHC.Internal.Data.Type.Equality.TestEquality ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.TypeRep -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal’
+instance forall k. GHC.Internal.Data.Type.Equality.TestEquality ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.TypeRep -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal’
instance forall k1 k2 (f :: k1 -> *) (g :: k2 -> k1). GHC.Internal.Data.Type.Equality.TestEquality f => GHC.Internal.Data.Type.Equality.TestEquality (Data.Functor.Compose.Compose f g) -- Defined in ‘Data.Functor.Compose’
instance forall a k (b :: k). GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
instance forall a. GHC.Internal.Enum.Bounded a => GHC.Internal.Enum.Bounded (GHC.Internal.Data.Bits.And a) -- Defined in ‘GHC.Internal.Data.Bits’
@@ -12293,7 +12349,7 @@ instance GHC.Internal.Exception.Type.Exception GHC.Internal.Control.Exception.Ba
instance GHC.Internal.Exception.Type.Exception GHC.Internal.Control.Exception.Base.RecUpdError -- Defined in ‘GHC.Internal.Control.Exception.Base’
instance GHC.Internal.Exception.Type.Exception GHC.Internal.Control.Exception.Base.TypeError -- Defined in ‘GHC.Internal.Control.Exception.Base’
instance GHC.Internal.Exception.Type.Exception GHC.Internal.Data.Dynamic.Dynamic -- Defined in ‘GHC.Internal.Data.Dynamic’
-instance [safe] GHC.Internal.Exception.Type.Exception ghc-internal-9.1300.0:GHC.Internal.IO.Handle.Lock.Common.FileLockingNotSupported -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.IO.Handle.Lock.Common’
+instance [safe] GHC.Internal.Exception.Type.Exception ghc-internal-9.1400.0:GHC.Internal.IO.Handle.Lock.Common.FileLockingNotSupported -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.IO.Handle.Lock.Common’
instance GHC.Internal.Exception.Type.Exception System.Timeout.Timeout -- Defined in ‘System.Timeout’
instance forall a k (b :: k). GHC.Internal.Float.Floating a => GHC.Internal.Float.Floating (GHC.Internal.Data.Functor.Const.Const a b) -- Defined in ‘GHC.Internal.Data.Functor.Const’
instance forall a. GHC.Internal.Float.RealFloat a => GHC.Internal.Float.Floating (Data.Complex.Complex a) -- Defined in ‘Data.Complex’
@@ -13005,8 +13061,8 @@ instance GHC.Internal.Show.Show GHC.Internal.Data.Data.DataRep -- Defined in ‘
instance GHC.Internal.Show.Show GHC.Internal.Data.Data.DataType -- Defined in ‘GHC.Internal.Data.Data’
instance GHC.Internal.Show.Show GHC.Internal.Data.Data.Fixity -- Defined in ‘GHC.Internal.Data.Data’
instance forall k (s :: k). GHC.Internal.Show.Show (GHC.Internal.Data.Proxy.Proxy s) -- Defined in ‘GHC.Internal.Data.Proxy’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal’
-instance forall k (a :: k). GHC.Internal.Show.Show (ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Data.Typeable.Internal’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.SomeTypeRep -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal’
+instance forall k (a :: k). GHC.Internal.Show.Show (ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.TypeRep a) -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal’
instance GHC.Internal.Show.Show GHC.Internal.Data.Dynamic.Dynamic -- Defined in ‘GHC.Internal.Data.Dynamic’
instance forall a b. (GHC.Internal.Show.Show a, GHC.Internal.Show.Show b) => GHC.Internal.Show.Show (GHC.Internal.Data.Either.Either a b) -- Defined in ‘GHC.Internal.Data.Either’
instance forall k (a :: k). Data.Fixed.HasResolution a => GHC.Internal.Show.Show (Data.Fixed.Fixed a) -- Defined in ‘Data.Fixed’
@@ -13077,13 +13133,13 @@ instance GHC.Internal.Show.Show GHC.Internal.Foreign.C.Types.CWchar -- Defined i
instance forall a. GHC.Internal.Show.Show (GHC.Internal.Foreign.C.ConstPtr.ConstPtr a) -- Defined in ‘GHC.Internal.Foreign.C.ConstPtr’
instance forall a b. (GHC.Internal.Ix.Ix a, GHC.Internal.Show.Show a, GHC.Internal.Show.Show b) => GHC.Internal.Show.Show (GHC.Internal.Arr.Array a b) -- Defined in ‘GHC.Internal.Arr’
instance GHC.Internal.Show.Show GHC.Internal.ByteOrder.ByteOrder -- Defined in ‘GHC.Internal.ByteOrder’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types.Timeout -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Internal.Types’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Event.Manager.FdKey -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Manager’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Event.Manager.State -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.Manager’
-instance GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.Event.TimerManager.State -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.Event.TimerManager’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Event -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.EventLifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Lifetime -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types.Timeout -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Internal.Types’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Event.Manager.FdKey -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Manager’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Event.Manager.State -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.Manager’
+instance GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.Event.TimerManager.State -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.Event.TimerManager’
instance GHC.Internal.Show.Show GHC.Internal.Fingerprint.Type.Fingerprint -- Defined in ‘GHC.Internal.Fingerprint.Type’
instance GHC.Internal.Show.Show GHC.Internal.Types.Double -- Defined in ‘GHC.Internal.Float’
instance GHC.Internal.Show.Show GHC.Internal.Types.Float -- Defined in ‘GHC.Internal.Float’
@@ -13117,7 +13173,7 @@ instance GHC.Internal.Show.Show GHC.Internal.IO.Handle.Types.Handle -- Defined i
instance GHC.Internal.Show.Show GHC.Internal.IO.Handle.Types.HandleType -- Defined in ‘GHC.Internal.IO.Handle.Types’
instance GHC.Internal.Show.Show GHC.Internal.IO.Handle.Types.Newline -- Defined in ‘GHC.Internal.IO.Handle.Types’
instance GHC.Internal.Show.Show GHC.Internal.IO.Handle.Types.NewlineMode -- Defined in ‘GHC.Internal.IO.Handle.Types’
-instance [safe] GHC.Internal.Show.Show ghc-internal-9.1300.0:GHC.Internal.IO.Handle.Lock.Common.FileLockingNotSupported -- Defined in ‘ghc-internal-9.1300.0:GHC.Internal.IO.Handle.Lock.Common’
+instance [safe] GHC.Internal.Show.Show ghc-internal-9.1400.0:GHC.Internal.IO.Handle.Lock.Common.FileLockingNotSupported -- Defined in ‘ghc-internal-9.1400.0:GHC.Internal.IO.Handle.Lock.Common’
instance GHC.Internal.Show.Show GHC.Internal.IO.Handle.HandlePosn -- Defined in ‘GHC.Internal.IO.Handle’
instance GHC.Internal.Show.Show GHC.Internal.IO.IOMode.IOMode -- Defined in ‘GHC.Internal.IO.IOMode’
instance GHC.Internal.Show.Show GHC.Internal.IO.SubSystem.IoSubSystem -- Defined in ‘GHC.Internal.IO.SubSystem’
=====================================
testsuite/tests/th/T15321.stderr
=====================================
@@ -7,6 +7,6 @@ T15321.hs:9:9: error: [GHC-88464]
(MonadFail m, GHC.Internal.Stack.Types.HasCallStack) =>
String -> m a
with fail @GHC.Internal.TH.Monad.Q @GHC.Internal.TH.Syntax.Exp
- (imported from ‘Prelude’
+ (imported from ‘Prelude’ at T15321.hs:3:8-13
(and originally defined in ‘GHC.Internal.Control.Monad.Fail’))
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/105c8ae0026224dd7fb5becc46bb34…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/105c8ae0026224dd7fb5becc46bb34…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/backports-9.14] testsuite: Accept new template-haskell-exports output
by Ben Gamari (@bgamari) 25 Oct '25
by Ben Gamari (@bgamari) 25 Oct '25
25 Oct '25
Ben Gamari pushed to branch wip/backports-9.14 at Glasgow Haskell Compiler / GHC
Commits:
105c8ae0 by Ben Gamari at 2025-10-25T13:44:56-04:00
testsuite: Accept new template-haskell-exports output
- - - - -
1 changed file:
- testsuite/tests/interface-stability/template-haskell-exports.stdout
Changes:
=====================================
testsuite/tests/interface-stability/template-haskell-exports.stdout
=====================================
@@ -398,7 +398,7 @@ module Language.Haskell.TH where
type SumArity = GHC.Internal.Types.Int
type role TExp nominal
type TExp :: forall (r :: GHC.Internal.Types.RuntimeRep). TYPE r -> *
- newtype TExp a = GHC.Internal.TH.Syntax.TExp {unType :: Exp}
+ newtype TExp a = GHC.Internal.TH.Monad.TExp {unType :: Exp}
type TExpQ :: forall (r :: GHC.Internal.Types.RuntimeRep). TYPE r -> *
type TExpQ a = Q (TExp a)
type TyLit :: *
@@ -653,7 +653,7 @@ module Language.Haskell.TH where
roleAnnotD :: forall (m :: * -> *). Quote m => Name -> [GHC.Internal.TH.Lib.Role] -> m Dec
ruleVar :: forall (m :: * -> *). Quote m => Name -> m RuleBndr
runIO :: forall a. GHC.Internal.Types.IO a -> Q a
- runQ :: forall (m :: * -> *) a. GHC.Internal.TH.Syntax.Quasi m => Q a -> m a
+ runQ :: forall (m :: * -> *) a. GHC.Internal.TH.Monad.Quasi m => Q a -> m a
safe :: Safety
sectionL :: forall (m :: * -> *). Quote m => m Exp -> m Exp -> m Exp
sectionR :: forall (m :: * -> *). Quote m => m Exp -> m Exp -> m Exp
@@ -734,8 +734,8 @@ module Language.Haskell.TH where
module Language.Haskell.TH.CodeDo where
-- Safety: Safe-Inferred
- (>>) :: forall (m :: * -> *) a b. GHC.Internal.Base.Monad m => m a -> GHC.Internal.TH.Syntax.Code m b -> GHC.Internal.TH.Syntax.Code m b
- (>>=) :: forall (m :: * -> *) a b. GHC.Internal.Base.Monad m => m a -> (a -> GHC.Internal.TH.Syntax.Code m b) -> GHC.Internal.TH.Syntax.Code m b
+ (>>) :: forall (m :: * -> *) a b. GHC.Internal.Base.Monad m => m a -> GHC.Internal.TH.Monad.Code m b -> GHC.Internal.TH.Monad.Code m b
+ (>>=) :: forall (m :: * -> *) a b. GHC.Internal.Base.Monad m => m a -> (a -> GHC.Internal.TH.Monad.Code m b) -> GHC.Internal.TH.Monad.Code m b
module Language.Haskell.TH.LanguageExtensions where
-- Safety: Safe
@@ -880,23 +880,23 @@ module Language.Haskell.TH.LanguageExtensions where
module Language.Haskell.TH.Lib where
-- Safety: Safe
type BangQ :: *
- type BangQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Bang
+ type BangQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Bang
type BangTypeQ :: *
- type BangTypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.BangType
+ type BangTypeQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.BangType
type BodyQ :: *
- type BodyQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Body
+ type BodyQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Body
type ClauseQ :: *
- type ClauseQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Clause
+ type ClauseQ = GHC.Internal.TH.Monad.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 CodeQ = GHC.Internal.TH.Monad.Code GHC.Internal.TH.Monad.Q
type ConQ :: *
- type ConQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Con
+ type ConQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Con
type CxtQ :: *
- type CxtQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Cxt
+ type CxtQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Cxt
type DecQ :: *
- type DecQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Dec
+ type DecQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Dec
type DecsQ :: *
- type DecsQ = GHC.Internal.TH.Syntax.Q [GHC.Internal.TH.Syntax.Dec]
+ type DecsQ = GHC.Internal.TH.Monad.Q [GHC.Internal.TH.Syntax.Dec]
type DefaultBndrFlag :: * -> Constraint
class DefaultBndrFlag flag where
defaultBndrFlag :: flag
@@ -904,55 +904,55 @@ module Language.Haskell.TH.Lib where
type DerivClause :: *
data DerivClause = DerivClause (GHC.Internal.Maybe.Maybe DerivStrategy) GHC.Internal.TH.Syntax.Cxt
type DerivClauseQ :: *
- type DerivClauseQ = GHC.Internal.TH.Syntax.Q DerivClause
+ type DerivClauseQ = GHC.Internal.TH.Monad.Q DerivClause
type DerivStrategy :: *
data DerivStrategy = StockStrategy | AnyclassStrategy | NewtypeStrategy | ViaStrategy GHC.Internal.TH.Syntax.Type
type DerivStrategyQ :: *
- type DerivStrategyQ = GHC.Internal.TH.Syntax.Q DerivStrategy
+ type DerivStrategyQ = GHC.Internal.TH.Monad.Q DerivStrategy
type ExpQ :: *
- type ExpQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Exp
+ type ExpQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Exp
type FamilyResultSigQ :: *
- type FamilyResultSigQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.FamilyResultSig
+ type FamilyResultSigQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.FamilyResultSig
type FieldExpQ :: *
- type FieldExpQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.FieldExp
+ type FieldExpQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.FieldExp
type FieldPatQ :: *
- type FieldPatQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.FieldPat
+ type FieldPatQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.FieldPat
type GuardQ :: *
- type GuardQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Guard
+ type GuardQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Guard
type InfoQ :: *
- type InfoQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Info
+ type InfoQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Info
type KindQ :: *
- type KindQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Kind
+ type KindQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Kind
type MatchQ :: *
- type MatchQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Match
+ type MatchQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Match
type Overlap :: *
data Overlap = Overlappable | Overlapping | Overlaps | Incoherent
type PatQ :: *
- type PatQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Pat
+ type PatQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Pat
type PatSynArgsQ :: *
- type PatSynArgsQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.PatSynArgs
+ type PatSynArgsQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.PatSynArgs
type PatSynDirQ :: *
- type PatSynDirQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.PatSynDir
+ type PatSynDirQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.PatSynDir
type PredQ :: *
- type PredQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Pred
+ type PredQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Pred
type RangeQ :: *
- type RangeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Range
+ type RangeQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Range
type RuleBndrQ :: *
- type RuleBndrQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.RuleBndr
+ type RuleBndrQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.RuleBndr
type SourceStrictnessQ :: *
- type SourceStrictnessQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.SourceStrictness
+ type SourceStrictnessQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.SourceStrictness
type SourceUnpackednessQ :: *
- type SourceUnpackednessQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.SourceUnpackedness
+ type SourceUnpackednessQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.SourceUnpackedness
type StmtQ :: *
- type StmtQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Stmt
+ type StmtQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Stmt
type StrictTypeQ :: *
- type StrictTypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.StrictType
+ type StrictTypeQ = GHC.Internal.TH.Monad.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 TExpQ a = GHC.Internal.TH.Monad.Q (GHC.Internal.TH.Monad.TExp a)
type TyLitQ :: *
- type TyLitQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.TyLit
+ type TyLitQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.TyLit
type TySynEqnQ :: *
- type TySynEqnQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.TySynEqn
+ type TySynEqnQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.TySynEqn
type TyVarBndrSpec :: *
type TyVarBndrSpec = GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.Specificity
type TyVarBndrUnit :: *
@@ -960,262 +960,262 @@ module Language.Haskell.TH.Lib where
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 TypeQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Type
type VarBangTypeQ :: *
- type VarBangTypeQ = GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.VarBangType
+ type VarBangTypeQ = GHC.Internal.TH.Monad.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 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
+ type VarStrictTypeQ = GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.VarStrictType
+ anyclassStrategy :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m DerivStrategy
+ appE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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
+ appKindT :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.Quote m => [m GHC.Internal.TH.Syntax.Exp] -> m GHC.Internal.TH.Syntax.Exp
+ arithSeqE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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
+ arrowT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type
+ asP :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
+ bangType :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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
+ caseE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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 -> [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 -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.TH.Syntax.FamilyResultSig -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.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
+ charTyLit :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Types.Char -> m GHC.Internal.TH.Syntax.TyLit
+ classD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [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.Monad.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.Monad.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.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.TH.Syntax.FamilyResultSig -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.InjectivityAnn -> [m GHC.Internal.TH.Syntax.TySynEqn] -> m GHC.Internal.TH.Syntax.Dec
+ compE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
+ conE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.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
+ conP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Pat
+ conT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type
+ condE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => [m GHC.Internal.TH.Syntax.Exp] -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
constraintK :: 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 -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> [m GHC.Internal.TH.Syntax.Con] -> [m 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 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 -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe 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.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Type] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> [m GHC.Internal.TH.Syntax.Con] -> [m 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 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 DerivStrategy -> [m GHC.Internal.TH.Syntax.Pred] -> m DerivClause
- doE :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
+ cxt :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Pred] -> m GHC.Internal.TH.Syntax.Cxt
+ dataD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> [m GHC.Internal.TH.Syntax.Con] -> [m DerivClause] -> m GHC.Internal.TH.Syntax.Dec
+ dataD_doc :: GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Monad.Q (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Kind) -> [(GHC.Internal.TH.Monad.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.Monad.Q DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Dec
+ dataFamilyD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Dec
+ dataInstD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Type] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> [m GHC.Internal.TH.Syntax.Con] -> [m DerivClause] -> m GHC.Internal.TH.Syntax.Dec
+ dataInstD_doc :: GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.Maybe.Maybe [GHC.Internal.TH.Monad.Q (GHC.Internal.TH.Syntax.TyVarBndr ())] -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Type -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Kind) -> [(GHC.Internal.TH.Monad.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.Monad.Q DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Dec
+ defaultD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Type] -> m GHC.Internal.TH.Syntax.Dec
+ defaultSigD :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => GHC.Internal.Maybe.Maybe DerivStrategy -> [m GHC.Internal.TH.Syntax.Pred] -> m DerivClause
+ doE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
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
+ dyn :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
+ equalP :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Type
+ explBidir :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Clause] -> m GHC.Internal.TH.Syntax.PatSynDir
+ fieldExp :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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 => [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 => [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
+ forImpD :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote 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.Monad.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.Monad.Quote 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.Monad.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.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
+ fromR :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Range
+ fromThenE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.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.Monad.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.Monad.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.Monad.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.Monad.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.Monad.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
+ gadtC :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
+ guardedB :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.PatSynDir
+ implicitParamBindD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Dec
+ implicitParamT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
+ implicitParamVarE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
inferR :: GHC.Internal.TH.Lib.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
- infixND :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Types.Int -> 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
- 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
+ infixApp :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
+ infixND :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
+ infixP :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.PatSynArgs
+ infixRD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Types.Int -> GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Dec
+ infixT :: forall (m :: * -> *). GHC.Internal.TH.Monad.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] -> GHC.Internal.TH.Lib.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 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
+ instanceD :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => GHC.Internal.Maybe.Maybe 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
+ invisP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Pat
+ isStrict :: forall (m :: * -> *). GHC.Internal.TH.Monad.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
+ kiSigD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Dec
kindSig :: GHC.Internal.TH.Syntax.Kind -> 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)
+ kindedBndrTV :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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 flag. DefaultBndrFlag flag => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.Kind -> GHC.Internal.TH.Syntax.TyVarBndr flag
- 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
+ labelE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
+ lam1E :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => [m GHC.Internal.TH.Syntax.Match] -> m GHC.Internal.TH.Syntax.Exp
+ lamCasesE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Clause] -> m GHC.Internal.TH.Syntax.Exp
+ lamE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.Quote m => [m GHC.Internal.TH.Syntax.Dec] -> m GHC.Internal.TH.Syntax.Stmt
+ listE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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 => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
+ listP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Pat
+ listT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type
+ litE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Lit -> m GHC.Internal.TH.Syntax.Exp
+ litP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Lit -> m GHC.Internal.TH.Syntax.Pat
+ litT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.TyLit -> m GHC.Internal.TH.Syntax.Type
+ match :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Exp
mkBytes :: GHC.Internal.ForeignPtr.ForeignPtr GHC.Internal.Word.Word8 -> GHC.Internal.Types.Word -> GHC.Internal.Types.Word -> GHC.Internal.TH.Syntax.Bytes
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 -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Con -> [m 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 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.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Type] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Con -> [m 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 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 DerivStrategy
- noBindS :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Stmt
+ mulArrowT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type
+ multiIfE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Con -> [m DerivClause] -> m GHC.Internal.TH.Syntax.Dec
+ newtypeD_doc :: GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Monad.Q (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Kind) -> (GHC.Internal.TH.Monad.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.Monad.Q DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Dec
+ newtypeInstD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.TH.Syntax.Name -> [m GHC.Internal.TH.Syntax.Type] -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Con -> [m DerivClause] -> m GHC.Internal.TH.Syntax.Dec
+ newtypeInstD_doc :: GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Cxt -> GHC.Internal.Maybe.Maybe [GHC.Internal.TH.Monad.Q (GHC.Internal.TH.Syntax.TyVarBndr ())] -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Type -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Kind) -> (GHC.Internal.TH.Monad.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.Monad.Q DerivClause] -> GHC.Internal.Maybe.Maybe GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Dec
+ newtypeStrategy :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m DerivStrategy
+ noBindS :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Stmt
noSig :: 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
+ noSourceStrictness :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.SourceStrictness
+ noSourceUnpackedness :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.SourceUnpackedness
nominalR :: GHC.Internal.TH.Lib.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 -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.TH.Syntax.FamilyResultSig -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.InjectivityAnn -> m GHC.Internal.TH.Syntax.Dec
- 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
+ normalB :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Body
+ normalC :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Guard
+ normalGE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Strict
+ numTyLit :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Bignum.Integer.Integer -> m GHC.Internal.TH.Syntax.TyLit
+ openTypeFamilyD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.TH.Syntax.FamilyResultSig -> GHC.Internal.Maybe.Maybe GHC.Internal.TH.Syntax.InjectivityAnn -> m GHC.Internal.TH.Syntax.Dec
+ parS :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [[m GHC.Internal.TH.Syntax.Stmt]] -> m GHC.Internal.TH.Syntax.Stmt
+ parensE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
+ parensP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
+ parensT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Type
+ patG :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Guard
+ patGE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.Q GHC.Internal.TH.Syntax.PatSynArgs -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.PatSynDir -> GHC.Internal.TH.Monad.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.Monad.Q GHC.Internal.TH.Syntax.Dec
+ patSynSigD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
phantomR :: GHC.Internal.TH.Lib.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)
+ plainBndrTV :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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 flag. DefaultBndrFlag flag => GHC.Internal.TH.Syntax.Name -> GHC.Internal.TH.Syntax.TyVarBndr flag
- 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
- pragRuleD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.Base.String -> [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
- 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
+ pragAnnD :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.Quote m => GHC.Internal.Types.Int -> GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Dec
+ pragRuleD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.String -> [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
+ pragSpecD :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
+ prefixPatSyn :: forall (m :: * -> *). GHC.Internal.TH.Monad.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
+ projectionE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.NonEmpty GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.Exp
+ promotedConsT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type
+ promotedInfixT :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Type
+ promotedT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type
+ promotedTupleT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Types.Int -> m GHC.Internal.TH.Syntax.Type
+ promotedUInfixT :: forall (m :: * -> *). GHC.Internal.TH.Monad.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
+ recC :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.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.Monad.Quote m => [m GHC.Internal.TH.Syntax.Stmt] -> m GHC.Internal.TH.Syntax.Stmt
+ recUpdE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => [GHC.Internal.TH.Syntax.Name] -> m GHC.Internal.TH.Syntax.PatSynArgs
representationalR :: GHC.Internal.TH.Lib.Role
- roleAnnotD :: forall (m :: * -> *). GHC.Internal.TH.Syntax.Quote m => GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Lib.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
+ roleAnnotD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Lib.Role] -> m GHC.Internal.TH.Syntax.Dec
+ ruleVar :: forall (m :: * -> *). GHC.Internal.TH.Monad.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 -> 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
+ sectionL :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.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.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Type -> GHC.Internal.TH.Syntax.Kind -> m GHC.Internal.TH.Syntax.Type
+ sourceLazy :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.SourceStrictness
+ sourceNoUnpack :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.SourceUnpackedness
+ sourceStrict :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.SourceStrictness
+ sourceUnpack :: forall (m :: * -> *). GHC.Internal.TH.Monad.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 DerivStrategy -> m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
+ standaloneDerivD :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => GHC.Internal.Maybe.Maybe DerivStrategy -> m GHC.Internal.TH.Syntax.Cxt -> m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Dec
starK :: 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
+ staticE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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 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
+ stockStrategy :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m DerivStrategy
+ strTyLit :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Base.String -> m GHC.Internal.TH.Syntax.TyLit
+ strictType :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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 => [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
+ thisModule :: GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Module
+ tildeP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Pat -> m GHC.Internal.TH.Syntax.Pat
+ tupE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Exp] -> m GHC.Internal.TH.Syntax.Exp
+ tupP :: forall (m :: * -> *). GHC.Internal.TH.Monad.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 -> [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 [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
+ tupleT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Types.Int -> m GHC.Internal.TH.Syntax.Type
+ tySynD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> [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.Monad.Quote m => GHC.Internal.Maybe.Maybe [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.Monad.Quote m => m GHC.Internal.TH.Syntax.TySynEqn -> m GHC.Internal.TH.Syntax.Dec
tyVarSig :: GHC.Internal.TH.Syntax.TyVarBndr () -> 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 -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe 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 => [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
+ typeDataD :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> [GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis] -> GHC.Internal.Maybe.Maybe 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.Monad.Q (GHC.Internal.TH.Syntax.TyVarBndr GHC.Internal.TH.Syntax.BndrVis)] -> GHC.Internal.Maybe.Maybe (GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Kind) -> [(GHC.Internal.TH.Monad.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.Monad.Q GHC.Internal.TH.Syntax.Dec
+ typeE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Exp
+ typeP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type -> m GHC.Internal.TH.Syntax.Pat
+ typedBracketE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
+ typedRuleVar :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Exp -> m GHC.Internal.TH.Syntax.Exp
+ uInfixE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.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.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Exp
+ unboxedSumE :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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.Monad.Quote m => GHC.Internal.TH.Syntax.SumArity -> m GHC.Internal.TH.Syntax.Type
+ unboxedTupE :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Exp] -> m GHC.Internal.TH.Syntax.Exp
+ unboxedTupP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => [m GHC.Internal.TH.Syntax.Pat] -> m GHC.Internal.TH.Syntax.Pat
+ unboxedTupleT :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.Types.Int -> m GHC.Internal.TH.Syntax.Type
+ unidir :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.PatSynDir
+ unpacked :: forall (m :: * -> *). GHC.Internal.TH.Monad.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
+ valD :: forall (m :: * -> *). GHC.Internal.TH.Monad.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
+ varBangType :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.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 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]
+ varP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Pat
+ varStrictType :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => GHC.Internal.TH.Syntax.Name -> m GHC.Internal.TH.Syntax.Type
+ viaStrategy :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Type -> m DerivStrategy
+ viewP :: forall (m :: * -> *). GHC.Internal.TH.Monad.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.Monad.Quote m => m GHC.Internal.TH.Syntax.Type
+ wildP :: forall (m :: * -> *). GHC.Internal.TH.Monad.Quote m => m GHC.Internal.TH.Syntax.Pat
+ withDecDoc :: GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Dec -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Dec
+ withDecsDoc :: GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q [GHC.Internal.TH.Syntax.Dec] -> GHC.Internal.TH.Monad.Q [GHC.Internal.TH.Syntax.Dec]
wordPrimL :: GHC.Internal.Bignum.Integer.Integer -> GHC.Internal.TH.Syntax.Lit
module Language.Haskell.TH.Ppr where
@@ -1367,12 +1367,10 @@ module Language.Haskell.TH.PprLib where
module Language.Haskell.TH.Quote where
-- Safety: Safe
type QuasiQuoter :: *
- data QuasiQuoter = QuasiQuoter {quoteExp :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Exp, quotePat :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Pat, quoteType :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q GHC.Internal.TH.Syntax.Type, quoteDec :: GHC.Internal.Base.String -> GHC.Internal.TH.Syntax.Q [GHC.Internal.TH.Syntax.Dec]}
- dataToExpQ :: forall (m :: * -> *) a. (GHC.Internal.TH.Syntax.Quote m, GHC.Internal.Data.Data.Data a) => (forall b. GHC.Internal.Data.Data.Data b => b -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Exp)) -> a -> m GHC.Internal.TH.Syntax.Exp
- dataToPatQ :: forall (m :: * -> *) a. (GHC.Internal.TH.Syntax.Quote m, GHC.Internal.Data.Data.Data a) => (forall b. GHC.Internal.Data.Data.Data b => b -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Pat)) -> a -> m GHC.Internal.TH.Syntax.Pat
- dataToQa :: forall (m :: * -> *) a k q. (GHC.Internal.TH.Syntax.Quote m, GHC.Internal.Data.Data.Data a) => (GHC.Internal.TH.Syntax.Name -> k) -> (GHC.Internal.TH.Syntax.Lit -> m q) -> (k -> [m q] -> m q) -> (forall b. GHC.Internal.Data.Data.Data b => b -> GHC.Internal.Maybe.Maybe (m q)) -> a -> m q
- defaultQuasiQuoter :: QuasiQuoter
- namedDefaultQuasiQuoter :: GHC.Internal.Base.String -> QuasiQuoter
+ data QuasiQuoter = QuasiQuoter {quoteExp :: GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Exp, quotePat :: GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Pat, quoteType :: GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q GHC.Internal.TH.Syntax.Type, quoteDec :: GHC.Internal.Base.String -> GHC.Internal.TH.Monad.Q [GHC.Internal.TH.Syntax.Dec]}
+ dataToExpQ :: forall (m :: * -> *) a. (GHC.Internal.TH.Monad.Quote m, GHC.Internal.Data.Data.Data a) => (forall b. GHC.Internal.Data.Data.Data b => b -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Exp)) -> a -> m GHC.Internal.TH.Syntax.Exp
+ dataToPatQ :: forall (m :: * -> *) a. (GHC.Internal.TH.Monad.Quote m, GHC.Internal.Data.Data.Data a) => (forall b. GHC.Internal.Data.Data.Data b => b -> GHC.Internal.Maybe.Maybe (m GHC.Internal.TH.Syntax.Pat)) -> a -> m GHC.Internal.TH.Syntax.Pat
+ dataToQa :: forall (m :: * -> *) a k q. (GHC.Internal.TH.Monad.Quote m, GHC.Internal.Data.Data.Data a) => (GHC.Internal.TH.Syntax.Name -> k) -> (GHC.Internal.TH.Syntax.Lit -> m q) -> (k -> [m q] -> m q) -> (forall b. GHC.Internal.Data.Data.Data b => b -> GHC.Internal.Maybe.Maybe (m q)) -> a -> m q
quoteFile :: QuasiQuoter -> QuasiQuoter
module Language.Haskell.TH.Syntax where
@@ -1724,8 +1722,8 @@ module Language.Haskell.TH.Syntax where
qAddForeignFilePath :: ForeignSrcLang -> GHC.Internal.Base.String -> m ()
qAddModFinalizer :: Q () -> m ()
qAddCorePlugin :: GHC.Internal.Base.String -> m ()
- qGetQ :: forall a. ghc-internal-9.1500.0:GHC.Internal.Data.Typeable.Internal.Typeable a => m (GHC.Internal.Maybe.Maybe a)
- qPutQ :: forall a. ghc-internal-9.1500.0:GHC.Internal.Data.Typeable.Internal.Typeable a => a -> m ()
+ qGetQ :: forall a. ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a => m (GHC.Internal.Maybe.Maybe a)
+ qPutQ :: forall a. ghc-internal-9.1400.0:GHC.Internal.Data.Typeable.Internal.Typeable a => a -> m ()
qIsExtEnabled :: Extension -> m GHC.Internal.Types.Bool
qExtsEnabled :: m [Extension]
qPutDoc :: DocLoc -> GHC.Internal.Base.String -> m ()
@@ -1784,7 +1782,6 @@ module Language.Haskell.TH.Syntax where
type VarStrictType :: *
type VarStrictType = VarBangType
addCorePlugin :: GHC.Internal.Base.String -> Q ()
- addDependentDirectory :: GHC.Internal.IO.FilePath -> Q ()
addDependentFile :: GHC.Internal.IO.FilePath -> Q ()
addForeignFile :: ForeignSrcLang -> GHC.Internal.Base.String -> Q ()
addForeignFilePath :: ForeignSrcLang -> GHC.Internal.IO.FilePath -> Q ()
@@ -1927,15 +1924,15 @@ instance GHC.Boot.TH.Ppr.Ppr GHC.Boot.TH.Ppr.TypeArg -- Defined in ‘GHC.Boot.T
instance GHC.Boot.TH.Ppr.PprFlag GHC.Internal.TH.Syntax.BndrVis -- Defined in ‘GHC.Boot.TH.Ppr’
instance GHC.Boot.TH.Ppr.PprFlag GHC.Internal.TH.Syntax.Specificity -- Defined in ‘GHC.Boot.TH.Ppr’
instance GHC.Boot.TH.Ppr.PprFlag () -- Defined in ‘GHC.Boot.TH.Ppr’
-instance GHC.Internal.Base.Applicative GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
+instance GHC.Internal.Base.Applicative GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
instance [safe] GHC.Internal.Base.Applicative GHC.Boot.TH.PprLib.PprM -- Defined in ‘GHC.Boot.TH.PprLib’
-instance GHC.Internal.Base.Functor GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
instance GHC.Internal.Base.Functor GHC.Internal.TH.Syntax.TyVarBndr -- Defined in ‘GHC.Internal.TH.Syntax’
+instance GHC.Internal.Base.Functor GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
instance [safe] GHC.Internal.Base.Functor GHC.Boot.TH.PprLib.PprM -- Defined in ‘GHC.Boot.TH.PprLib’
-instance GHC.Internal.Base.Monad GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
+instance GHC.Internal.Base.Monad GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
instance [safe] GHC.Internal.Base.Monad GHC.Boot.TH.PprLib.PprM -- Defined in ‘GHC.Boot.TH.PprLib’
-instance forall a. GHC.Internal.Base.Monoid a => GHC.Internal.Base.Monoid (GHC.Internal.TH.Syntax.Q a) -- Defined in ‘GHC.Internal.TH.Syntax’
-instance forall a. GHC.Internal.Base.Semigroup a => GHC.Internal.Base.Semigroup (GHC.Internal.TH.Syntax.Q a) -- Defined in ‘GHC.Internal.TH.Syntax’
+instance forall a. GHC.Internal.Base.Monoid a => GHC.Internal.Base.Monoid (GHC.Internal.TH.Monad.Q a) -- Defined in ‘GHC.Internal.TH.Monad’
+instance forall a. GHC.Internal.Base.Semigroup a => GHC.Internal.Base.Semigroup (GHC.Internal.TH.Monad.Q a) -- Defined in ‘GHC.Internal.TH.Monad’
instance GHC.Internal.Classes.Eq GHC.Internal.TH.Syntax.AnnLookup -- Defined in ‘GHC.Internal.TH.Syntax’
instance GHC.Internal.Classes.Eq GHC.Internal.TH.Syntax.AnnTarget -- Defined in ‘GHC.Internal.TH.Syntax’
instance GHC.Internal.Classes.Eq GHC.Internal.TH.Syntax.Bang -- Defined in ‘GHC.Internal.TH.Syntax’
@@ -2051,65 +2048,9 @@ instance forall flag. GHC.Internal.Classes.Ord flag => GHC.Internal.Classes.Ord
instance GHC.Internal.Classes.Ord GHC.Internal.TH.Syntax.Type -- Defined in ‘GHC.Internal.TH.Syntax’
instance GHC.Internal.Classes.Ord GHC.Internal.TH.Syntax.TypeFamilyHead -- Defined in ‘GHC.Internal.TH.Syntax’
instance GHC.Internal.Classes.Ord GHC.Internal.LanguageExtensions.Extension -- Defined in ‘GHC.Internal.LanguageExtensions’
-instance GHC.Internal.Control.Monad.Fail.MonadFail GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Control.Monad.Fix.MonadFix GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Control.Monad.IO.Class.MonadIO GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.AnnLookup -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.AnnTarget -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Bang -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.BndrVis -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Body -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Bytes -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Callconv -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Clause -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Con -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Dec -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DecidedStrictness -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DerivClause -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DerivStrategy -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.DocLoc -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Exp -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.FamilyResultSig -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Fixity -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.FixityDirection -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Foreign -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.FunDep -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Guard -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Info -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.InjectivityAnn -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Inline -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Lit -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Loc -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Match -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.ModName -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Module -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.ModuleInfo -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Name -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.NameFlavour -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.NameSpace -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.NamespaceSpecifier -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.OccName -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Overlap -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Pat -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.PatSynArgs -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.PatSynDir -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Phases -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.PkgName -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Pragma -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Range -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Role -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.RuleBndr -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.RuleMatch -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Safety -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.SourceStrictness -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.SourceUnpackedness -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Specificity -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Stmt -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.TyLit -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.TySynEqn -- Defined in ‘GHC.Internal.TH.Syntax’
-instance forall flag. GHC.Internal.Data.Data.Data flag => GHC.Internal.Data.Data.Data (GHC.Internal.TH.Syntax.TyVarBndr flag) -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.Type -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.Data.Data.Data GHC.Internal.TH.Syntax.TypeFamilyHead -- Defined in ‘GHC.Internal.TH.Syntax’
+instance GHC.Internal.Control.Monad.Fail.MonadFail GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
+instance GHC.Internal.Control.Monad.Fix.MonadFix GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
+instance GHC.Internal.Control.Monad.IO.Class.MonadIO GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
instance GHC.Internal.Data.Foldable.Foldable GHC.Internal.TH.Syntax.TyVarBndr -- Defined in ‘GHC.Internal.TH.Syntax’
instance GHC.Internal.Data.Traversable.Traversable GHC.Internal.TH.Syntax.TyVarBndr -- Defined in ‘GHC.Internal.TH.Syntax’
instance GHC.Internal.Enum.Bounded GHC.Internal.LanguageExtensions.Extension -- Defined in ‘GHC.Internal.LanguageExtensions’
@@ -2302,7 +2243,7 @@ instance GHC.Internal.TH.Lift.Lift GHC.Internal.TH.Syntax.SourceStrictness -- De
instance GHC.Internal.TH.Lift.Lift GHC.Internal.TH.Syntax.SourceUnpackedness -- Defined in ‘GHC.Internal.TH.Lift’
instance GHC.Internal.TH.Lift.Lift GHC.Internal.TH.Syntax.Specificity -- Defined in ‘GHC.Internal.TH.Lift’
instance GHC.Internal.TH.Lift.Lift GHC.Internal.TH.Syntax.Stmt -- Defined in ‘GHC.Internal.TH.Lift’
-instance forall a. GHC.Internal.TH.Lift.Lift (GHC.Internal.TH.Syntax.TExp a) -- Defined in ‘GHC.Internal.TH.Lift’
+instance forall a. GHC.Internal.TH.Lift.Lift (GHC.Internal.TH.Monad.TExp a) -- Defined in ‘GHC.Internal.TH.Lift’
instance forall a b. (GHC.Internal.TH.Lift.Lift a, GHC.Internal.TH.Lift.Lift b) => GHC.Internal.TH.Lift.Lift (a, b) -- Defined in ‘GHC.Internal.TH.Lift’
instance forall a b c. (GHC.Internal.TH.Lift.Lift a, GHC.Internal.TH.Lift.Lift b, GHC.Internal.TH.Lift.Lift c) => GHC.Internal.TH.Lift.Lift (a, b, c) -- Defined in ‘GHC.Internal.TH.Lift’
instance forall a b c d. (GHC.Internal.TH.Lift.Lift a, GHC.Internal.TH.Lift.Lift b, GHC.Internal.TH.Lift.Lift c, GHC.Internal.TH.Lift.Lift d) => GHC.Internal.TH.Lift.Lift (a, b, c, d) -- Defined in ‘GHC.Internal.TH.Lift’
@@ -2340,10 +2281,10 @@ instance forall a b c d e f g. (GHC.Internal.TH.Lift.Lift a, GHC.Internal.TH.Lif
instance GHC.Internal.TH.Lift.Lift (# #) -- Defined in ‘GHC.Internal.TH.Lift’
instance GHC.Internal.TH.Lift.Lift GHC.Internal.Prim.Char# -- Defined in ‘GHC.Internal.TH.Lift’
instance GHC.Internal.TH.Lift.Lift GHC.Internal.Prim.Word# -- Defined in ‘GHC.Internal.TH.Lift’
-instance GHC.Internal.TH.Syntax.Quasi GHC.Internal.Types.IO -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.TH.Syntax.Quasi GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.TH.Syntax.Quote GHC.Internal.Types.IO -- Defined in ‘GHC.Internal.TH.Syntax’
-instance GHC.Internal.TH.Syntax.Quote GHC.Internal.TH.Syntax.Q -- Defined in ‘GHC.Internal.TH.Syntax’
+instance GHC.Internal.TH.Monad.Quasi GHC.Internal.Types.IO -- Defined in ‘GHC.Internal.TH.Monad’
+instance GHC.Internal.TH.Monad.Quasi GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
+instance GHC.Internal.TH.Monad.Quote GHC.Internal.Types.IO -- Defined in ‘GHC.Internal.TH.Monad’
+instance GHC.Internal.TH.Monad.Quote GHC.Internal.TH.Monad.Q -- Defined in ‘GHC.Internal.TH.Monad’
instance [safe] Language.Haskell.TH.Lib.DefaultBndrFlag GHC.Internal.TH.Syntax.BndrVis -- Defined in ‘Language.Haskell.TH.Lib’
instance [safe] Language.Haskell.TH.Lib.DefaultBndrFlag GHC.Internal.TH.Syntax.Specificity -- Defined in ‘Language.Haskell.TH.Lib’
instance [safe] Language.Haskell.TH.Lib.DefaultBndrFlag () -- Defined in ‘Language.Haskell.TH.Lib’
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/105c8ae0026224dd7fb5becc46bb344…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/105c8ae0026224dd7fb5becc46bb344…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
Ben Gamari pushed new branch wip/backports-9.14 at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/backports-9.14
You're receiving this email because of your account on gitlab.haskell.org.
1
0
Peter Trommler pushed new branch wip/T26521 at Glasgow Haskell Compiler / GHC
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/tree/wip/T26521
You're receiving this email because of your account on gitlab.haskell.org.
1
0
[Git][ghc/ghc][wip/az/ghc-cpp] 18 commits: compiler: Attempt to systematize Unique tags by introducing an ADT for each different tag
by Alan Zimmerman (@alanz) 25 Oct '25
by Alan Zimmerman (@alanz) 25 Oct '25
25 Oct '25
Alan Zimmerman pushed to branch wip/az/ghc-cpp at Glasgow Haskell Compiler / GHC
Commits:
f85058d3 by Zubin Duggal at 2025-10-17T13:50:52+05:30
compiler: Attempt to systematize Unique tags by introducing an ADT for each different tag
Fixes #26264
Metric Decrease:
T9233
- - - - -
c85c845d by sheaf at 2025-10-17T22:35:32-04:00
Don't prematurely final-zonk PatSyn declarations
This commit makes GHC hold off on the final zonk for pattern synonym
declarations, in 'GHC.Tc.TyCl.PatSyn.tc_patsyn_finish'.
This accommodates the fact that pattern synonym declarations without a
type signature can contain unfilled metavariables, e.g. if the RHS of
the pattern synonym involves view-patterns whose type mentions promoted
(level 0) metavariables. Just like we do for ordinary function bindings,
we should allow these metavariables to be settled later, instead of
eagerly performing a final zonk-to-type.
Now, the final zonking-to-type for pattern synonyms is performed in
GHC.Tc.Module.zonkTcGblEnv.
Fixes #26465
- - - - -
ba3e5bdd by Rodrigo Mesquita at 2025-10-18T16:57:18-04:00
Move code-gen aux symbols from ghc-internal to rts
These symbols were all previously defined in ghc-internal and made the
dependency structure awkward, where the rts may refer to some of these
symbols and had to work around that circular dependency the way
described in #26166.
Moreover, the code generator will produce code that uses these symbols!
Therefore, they should be available in the rts:
PRINCIPLE: If the code generator may produce code which uses this
symbol, then it should be defined in the rts rather than, say,
ghc-internal.
That said, the main motivation is towards fixing #26166.
Towards #26166. Pre-requisite of !14892
- - - - -
f31de2a9 by Ben Gamari at 2025-10-18T16:57:18-04:00
rts: Avoid static symbol references to ghc-internal
This resolves #26166, a bug due to new constraints placed by Apple's
linker on undefined references.
One source of such references in the RTS is the many symbols referenced
in ghc-internal. To mitigate #26166, we make these references dynamic,
as described in Note [RTS/ghc-internal interface].
Fixes #26166
Co-authored-by: Rodrigo Mesquita <rodrigo.m.mesquita(a)gmail.com>
Co-authored-by: Cheng Shao <terrorjack(a)type.dance>
- - - - -
43fdfddc by Ben Gamari at 2025-10-18T16:57:18-04:00
compiler: Rename isMathFun -> isLibcFun
This set includes more than just math functions.
- - - - -
4ed5138f by Ben Gamari at 2025-10-18T16:57:18-04:00
compiler: Add libc allocator functions to libc_funs
Prototypes for these are now visible from `Prim.h`, resulting in
multiple-declaration warnings in the unregisterised job.
- - - - -
9a0a076b by Ben Gamari at 2025-10-18T16:57:18-04:00
rts: Minimize header dependencies of Prim.h
Otherwise we will end up with redundant and incompatible declarations
resulting in warnings during the unregisterised build.
- - - - -
26b8a414 by Diego Antonio Rosario Palomino at 2025-10-18T16:58:10-04:00
Cmm Parser: Fix incorrect example in comment
The Parser.y file contains a comment with an incorrect example of textual
Cmm (used in .cmm files). This commit updates the comment to ensure it
reflects valid textual Cmm syntax.
Fixes #26313
- - - - -
d4a9d6d6 by ARATA Mizuki at 2025-10-19T18:43:47+09:00
Handle implications between x86 feature flags
This includes:
* Multiple -msse* options can be specified
* -mavx implies -msse4.2
* -mavx2 implies -mavx
* -mfma implies -mavx
* -mavx512f implies -mavx2 and -mfma
* -mavx512{cd,er,pf} imply -mavx512f
Closes #24989
Co-authored-by: sheaf <sam.derbyshire(a)gmail.com>
- - - - -
c9b8465c by Cheng Shao at 2025-10-20T10:16:00-04:00
wasm: workaround WebKit bug in dyld
This patch works around a WebKit bug and allows dyld to run on WebKit
based platforms as well. See added note for detailed explanation.
Co-authored-by: Codex <codex(a)openai.com>
- - - - -
91b6be10 by Julian Ospald at 2025-10-20T18:21:03-04:00
Improve error handling in 'getPackageArchives'
When the library dirs in the package conf files are not set up correctly,
the JS linker will happily ignore such packages and not link against them,
although they're part of the link plan.
Fixes #26383
- - - - -
6c5269da by Sven Tennie at 2025-10-20T18:21:44-04:00
Align coding style
Improve readability by using the same style for all constructor calls in
this function.
- - - - -
3d305889 by Sven Tennie at 2025-10-20T18:21:44-04:00
Reduce complexity by removing joins with mempty
ldArgs, cArgs and cppArgs are all `mempty`. Thus concatenating them adds
nothing but some complexity while reading the code.
- - - - -
7e8605dd by Alan Zimmerman at 2025-10-22T19:34:22+01:00
GHC-CPP: Initial implementation
Processes
#define FOO
#ifdef FOO
x = 1
#endif
Into
[ITcppIgnored [L loc ITcppDefine]
,ITcppIgnored [L loc ITcppIfdef]
,ITvarid "x"
,ITequal
,ITinteger (IL {il_text = SourceText "1", il_neg = False, il_value = 1})
,ITcppIgnored [L loc ITcppEndif]
,ITeof]
In time, ITcppIgnored will be pushed into a comment
Tidy up before re-visiting the continuation mechanic
Switch preprocessor to continuation passing style
Proof of concept, needs tidying up
Small cleanup
Get rid of some cruft
Summary: Patch:
Author: Alan Zimmerman <alan.zimm(a)gmail.com>
Date: 2025-10-12 16:23:56 +0100
Summary: Patch: rebase-and-tests-pass
Author: Alan Zimmerman <alan.zimm(a)gmail.com>
Date: 2025-10-12 14:19:04 +0100
Rebase, and all tests pass except whitespace for generated parser
Starting to integrate.
Need to get the pragma recognised and set
Make cppTokens extend to end of line, and process CPP comments
Remove unused ITcppDefined
Allow spaces between # and keyword for preprocessor directive
Process CPP continuation lines
They are emited as separate ITcppContinue tokens.
Perhaps the processing should be more like a comment, and keep on
going to the end.
BUT, the last line needs to be slurped as a whole.
Accumulate CPP continuations, process when ready
Can be simplified further, we only need one CPP token
Simplify Lexer interface. Only ITcpp
We transfer directive lines through it, then parse them from scratch
in the preprocessor.
Deal with directive on last line, with no trailing \n
Start parsing and processing the directives
Prepare for processing include files
Move PpState into PreProcess
And initParserState, initPragState too
Process nested include files
Also move PpState out of Lexer.x, so it is easy to evolve it in a ghci
session, loading utils/check-cpp/Main.hs
Split into separate files
Starting on expression parser.
But it hangs. Time for Text.Parsec.Expr
Start integrating the ghc-cpp work
From https://github.com/alanz/ghc-cpp
WIP
Fixup after rebase
WIP
Fixup after rebase, including all tests pass
Change pragma usage to GHC_CPP from GhcCPP
Some comments
Reformat
Delete unused file
Rename module Parse to ParsePP
Clarify naming in the parser
WIP. Switching to alex/happy to be able to work in-tree
Since Parsec is not available
Layering is now correct
- GHC lexer, emits CPP tokens
- accumulated in Preprocessor state
- Lexed by CPP lexer, CPP command extracted, tokens concated with
spaces (to get rid of token pasting via comments)
- if directive lexed and parsed by CPP lexer/parser, and evaluated
First example working
Loading Example1.hs into ghci, getting the right results
```
{-# LANGUAGE GHC_CPP #-}
module Example1 where
y = 3
x =
"hello"
"bye now"
foo = putStrLn x
```
Rebase, and all tests pass except whitespace for generated parser
info: patch template saved to `-`
More plumbing. Ready for testing tomorrow.
Proress. Renamed module State from Types
And at first blush it seems to handle preprocessor scopes properly.
Insert basic GHC version macros into parser
__GLASGOW_HASKELL__
__GLASGOW_HASKELL_FULL_VERSION__
__GLASGOW_HASKELL_PATCHLEVEL1__
__GLASGOW_HASKELL_PATCHLEVEL2__
Re-sync check-cpp for easy ghci work
Get rid of warnings
Rework macro processing, in check-cpp
Macros kept at the top level, looked up via name, multiple arity
versions per name can be stored
WIP. Can crack arguments for #define
Next step it to crack out args in an expansion
WIP on arg parsing.
Progress. Still screwing up nested parens.
Seems to work, but has redundant code
Remove redundant code
Reformat
Expand args, single pass
Still need to repeat until fixpoint
Fixed point expansion
Sync the playground to compiler
Working on dumping the GHC_CPP result
But We need to keep the BufSpan in a comment
Keep BufSpan in queued comments in GHC.Parser.Lexer
Getting close to being able to print the combined tokens
showing what is in and what is out
First implementation of dumpGhcCpp.
Example output
First dumps all macros in the state, then the source, showing which
lines are in and which are out
------------------------------
- |#define FOO(A,B) A + B
- |#define FOO(A,B,C) A + B + C
- |#if FOO(1,FOO(3,4)) == 8
- |-- a comment
|x = 1
- |#else
- |x = 5
- |#endif
Clean up a bit
Add -ddump-ghc-cpp option and a test based on it
Restore Lexer.x rules, we need them for continuation lines
Lexer.x: trying to sort out the span for continuations
- We need to match on \n at the end of the line
- We cannot simply back up for it
Inserts predefined macros. But does not dump properly
Because the cpp tokens have a trailing newline
Remove unnecessary LExer rules
We *need* the ones that explicitly match to the end of the line.
Generate correct span for ITcpp
Dump now works, except we do not render trailing `\` for continuation
lines. This is good enough for use in test output.
Reduce duplication in lexer
Tweaks
Insert min_version predefined macros into state
The mechanism now works. Still need to flesh out the full set.
Trying my alternative pragma syntax.
It works, but dumpGhcCpp is broken, I suspect from the ITcpp token
span update.
Pragma extraction now works, with both CPP and GHC_CPP
For the following
{-# LANGUAGE CPP #-}
#if __GLASGOW_HASKELL__ >= 913
{-# LANGUAGE GHC_CPP #-}
#endif
We will enable GHC_CPP only
Remove some tracing
Fix test exes for changes
For GHC_CPP tests, normalise config-time-based macros
WIP
WIP again. What is wrong?
Revert to dynflags for normal not pragma lexing
Working on getting check-exact to work properly
Passes CppCommentPlacement test
Starting on exact printing with GHC_CPP
While overriding normal CPP
Correctly store CPP ignored tokens as comments
By populating the lexeme string in it, based on the bufpos
WIP
Simplifying
Update the active state logic
Work the new logic into the mainline code
Process `defined` operator
Manage lexer state while skipping tokens
There is very intricate layout-related state used when lexing. If a
CPP directive blanks out some tokens, store this state when the
blanking starts, and restore it when they are no longer being blanked.
Track the last token buffer index, for ITCppIgnored
We need to attach the source being skipped in an ITCppIgnored token.
We cannot simply use its BufSpan as an index into the underlying
StringBuffer as it counts unicode chars, not bytes.
So we update the lexer state to store the starting StringBuffer
location for the last token, and use the already-stored length to
extract the correct portion of the StringBuffer being parsed.
Process the ! operator in GHC_CPP expressions
Predefine a constant when GHC_CPP is being used.
WIP
Skip lines directly in the lexer when required
Properly manage location when accepting tokens again
Seems to be working now, for Example9
Remove tracing
Fix parsing '*' in block comments
Instead of replacing them with '-'
Keep the trailing backslash in a ITcpp token
Deal with only enabling one section of a group.
A group is an instance of a conditional introduced by
#if/#ifdef/#ifndef,
and ending at the final #endif, including intermediate #elsif sections
Replace remaining identifiers with 0 when evaluating
As per the spec
Snapshot before rebase
Skip non-processed lines starting with #
Export generateMacros so we can use it in ghc-exactprint
Fix rebase
Expose initParserStateWithMacrosString
Fix buggy lexer cppSkip
It was skipping all lines, not just ones prefixed by #
Fix evaluation of && to use the correct operator
Deal with closing #-} at the start of a line
Add the MIN_VERSION_GLASGOW_HASKELL predefined macro
Include MIN_VERSION_GLASGOW_HASKELL in GhcCpp01.stderr
Use a strict map for macro defines
Process TIdentifierLParen
Which only matters at the start of #define
Do not provide TIdentifierLParen paren twice
Handle whitespace between identifier and '(' for directive only
Expose some Lexer bitmap manipulation helpers
Deal with line pragmas as tokens
Blows up for dumpGhcCpp though
Allow strings delimited by a single quote too
Allow leading whitespace on cpp directives
As per https://timsong-cpp.github.io/cppwp/n4140/cpp#1
Implement GHC_CPP undef
Sort out expansion of no-arg macros, in a context with args
And make the expansion bottom out, in the case of recursion
Fix GhcCpp01 test
The LINE pragma stuff works in ghc-exactprint when specifically
setting flag to emit ITline_pragma tokens
Process comments in CPP directives
Correctly lex pragmas with finel #-} on a newline
Do not process CPP-style comments
Allow cpp-style comments when GHC_CPP enabled
Return other pragmas as cpp ignored when GHC_CPP active
Reorganise getOptionsFromFile for use in ghc-exactprint
We want to be able to inject predefined macro definitions into the
parser preprocessor state for when we do a hackage roundtrip.
Tweak testing
Only allow unknown cpp pragmas with # in left margin
Require # against left margin for all GHC_CPP directives
Fix CPP directives appearing in pragmas
And add a test for error reporting for missing `#if`
Starting to report GHC_CPP errors using GHC machinery
More GHC_CPP diagnostic results
WIP on converting error calls to GHC diagnostics in GHC_CPP
Working on CPP diagnostic reporting
Tweak some tests/lint warnings
More error reporting in Macro
Some cleanups
Some cleanup
GHC_CPP: Working on improving error reporting
Harvest some commonality
Use PPM as Maybe inside PP
Clean up a bit
Fix GhcCpp01 test
I think this needs to be made more robust. Likely by not dumping the
(pre-)defined macros.
info: patch template saved to `-`
info: patch template saved to `-`
- - - - -
df524b7c by Alan Zimmerman at 2025-10-22T19:34:22+01:00
Fix GhcCpp01 after rebase
- - - - -
8d2884c7 by Alan Zimmerman at 2025-10-22T19:34:22+01:00
GHC_CPP: delete utils/check-cpp
It is not needed
- - - - -
a83161f1 by Alan Zimmerman at 2025-10-22T19:34:22+01:00
GHC_CPP: remove #include processing
We do not support it
- - - - -
2a73e7a4 by Alan Zimmerman at 2025-10-22T19:34:22+01:00
GHC_CPP: move Eval.hs into GHC.Parser.PreProcess.Macro
- - - - -
184 changed files:
- compiler/GHC.hs
- compiler/GHC/Builtin/Uniques.hs
- compiler/GHC/Cmm/CLabel.hs
- compiler/GHC/Cmm/Info.hs
- compiler/GHC/Cmm/Info/Build.hs
- compiler/GHC/Cmm/Lexer.x
- compiler/GHC/Cmm/Parser.y
- compiler/GHC/Cmm/Parser/Monad.hs
- compiler/GHC/Cmm/Pipeline.hs
- compiler/GHC/Cmm/UniqueRenamer.hs
- compiler/GHC/CmmToAsm/Config.hs
- compiler/GHC/CmmToAsm/Wasm/FromCmm.hs
- compiler/GHC/CmmToAsm/X86/CodeGen.hs
- compiler/GHC/CmmToAsm/X86/Instr.hs
- compiler/GHC/CmmToC.hs
- compiler/GHC/CmmToLlvm/Base.hs
- compiler/GHC/Core/Make.hs
- compiler/GHC/Core/Opt/Monad.hs
- compiler/GHC/Core/Opt/Pipeline.hs
- compiler/GHC/Core/Opt/Simplify/Monad.hs
- compiler/GHC/Core/PatSyn.hs
- compiler/GHC/CoreToStg/Prep.hs
- compiler/GHC/Driver/Backpack.hs
- compiler/GHC/Driver/CodeOutput.hs
- compiler/GHC/Driver/Config/CmmToAsm.hs
- compiler/GHC/Driver/Config/Parser.hs
- compiler/GHC/Driver/Downsweep.hs
- compiler/GHC/Driver/DynFlags.hs
- compiler/GHC/Driver/Flags.hs
- compiler/GHC/Driver/Main.hs
- compiler/GHC/Driver/Pipeline.hs
- compiler/GHC/Driver/Pipeline/Execute.hs
- compiler/GHC/Driver/Session.hs
- compiler/GHC/HsToCore/Foreign/C.hs
- compiler/GHC/HsToCore/Foreign/JavaScript.hs
- compiler/GHC/HsToCore/Foreign/Wasm.hs
- compiler/GHC/HsToCore/Monad.hs
- compiler/GHC/HsToCore/Utils.hs
- compiler/GHC/Iface/Binary.hs
- compiler/GHC/Iface/Rename.hs
- compiler/GHC/JS/JStg/Monad.hs
- compiler/GHC/Linker/Dynamic.hs
- compiler/GHC/Linker/Static.hs
- compiler/GHC/Parser.hs-boot
- compiler/GHC/Parser.y
- compiler/GHC/Parser/Annotation.hs
- compiler/GHC/Parser/Errors/Ppr.hs
- compiler/GHC/Parser/Errors/Types.hs
- compiler/GHC/Parser/HaddockLex.x
- compiler/GHC/Parser/Header.hs
- compiler/GHC/Parser/Lexer.x
- compiler/GHC/Parser/PostProcess.hs
- compiler/GHC/Parser/PostProcess/Haddock.hs
- + compiler/GHC/Parser/PreProcess.hs
- + compiler/GHC/Parser/PreProcess/Lexer.x
- + compiler/GHC/Parser/PreProcess/Macro.hs
- + compiler/GHC/Parser/PreProcess/ParsePP.hs
- + compiler/GHC/Parser/PreProcess/Parser.y
- + compiler/GHC/Parser/PreProcess/ParserM.hs
- + compiler/GHC/Parser/PreProcess/State.hs
- compiler/GHC/Parser/Utils.hs
- compiler/GHC/Platform.hs
- compiler/GHC/Platform/Reg.hs
- compiler/GHC/Runtime/Eval.hs
- compiler/GHC/Stg/EnforceEpt.hs
- compiler/GHC/Stg/Pipeline.hs
- compiler/GHC/StgToCmm/ExtCode.hs
- compiler/GHC/StgToCmm/Monad.hs
- compiler/GHC/StgToJS/CodeGen.hs
- compiler/GHC/StgToJS/Ids.hs
- compiler/GHC/StgToJS/Linker/Linker.hs
- compiler/GHC/SysTools/Cpp.hs
- compiler/GHC/Tc/Module.hs
- compiler/GHC/Tc/TyCl/PatSyn.hs
- compiler/GHC/Tc/Types.hs
- compiler/GHC/Tc/Types/Origin.hs
- compiler/GHC/Tc/Utils/Monad.hs
- compiler/GHC/Tc/Zonk/Type.hs
- compiler/GHC/Types/Error/Codes.hs
- compiler/GHC/Types/Name/Cache.hs
- compiler/GHC/Types/Unique.hs
- compiler/GHC/Types/Unique/DSM.hs
- compiler/GHC/Types/Unique/Supply.hs
- compiler/Language/Haskell/Syntax/Binds.hs
- compiler/ghc.cabal.in
- docs/users_guide/9.16.1-notes.rst
- docs/users_guide/debugging.rst
- docs/users_guide/using.rst
- ghc/GHCi/UI.hs
- hadrian/src/Rules/Gmp.hs
- hadrian/src/Rules/Libffi.hs
- hadrian/src/Rules/SourceDist.hs
- hadrian/src/Settings/Builders/Cabal.hs
- hadrian/src/Settings/Builders/Common.hs
- hadrian/src/Settings/Builders/DeriveConstants.hs
- hadrian/src/Settings/Builders/Hsc2Hs.hs
- hadrian/src/Settings/Packages.hs
- + libraries/ghc-internal/cbits/RtsIface.c
- libraries/ghc-internal/ghc-internal.cabal.in
- + libraries/ghc-internal/include/RtsIfaceSymbols.h
- libraries/ghc-internal/src/GHC/Internal/LanguageExtensions.hs
- rts/BuiltinClosures.c
- rts/CloneStack.h
- rts/Compact.cmm
- rts/ContinuationOps.cmm
- rts/Exception.cmm
- rts/Prelude.h
- rts/PrimOps.cmm
- rts/RtsAPI.c
- rts/RtsStartup.c
- rts/RtsSymbols.c
- + rts/RtsToHsIface.c
- rts/StgStdThunks.cmm
- rts/configure.ac
- − rts/external-symbols.list.in
- rts/include/Rts.h
- rts/include/RtsAPI.h
- rts/include/Stg.h
- + rts/include/rts/RtsToHsIface.h
- rts/include/rts/Types.h
- rts/include/stg/Prim.h
- rts/posix/Signals.c
- libraries/ghc-internal/cbits/atomic.c → rts/prim/atomic.c
- libraries/ghc-internal/cbits/bitrev.c → rts/prim/bitrev.c
- libraries/ghc-internal/cbits/bswap.c → rts/prim/bswap.c
- libraries/ghc-internal/cbits/clz.c → rts/prim/clz.c
- libraries/ghc-internal/cbits/ctz.c → rts/prim/ctz.c
- libraries/ghc-internal/cbits/int64x2minmax.c → rts/prim/int64x2minmax.c
- libraries/ghc-internal/cbits/longlong.c → rts/prim/longlong.c
- libraries/ghc-internal/cbits/mulIntMayOflo.c → rts/prim/mulIntMayOflo.c
- libraries/ghc-internal/cbits/pdep.c → rts/prim/pdep.c
- libraries/ghc-internal/cbits/pext.c → rts/prim/pext.c
- libraries/ghc-internal/cbits/popcnt.c → rts/prim/popcnt.c
- libraries/ghc-internal/cbits/vectorQuotRem.c → rts/prim/vectorQuotRem.c
- libraries/ghc-internal/cbits/word2float.c → rts/prim/word2float.c
- − rts/rts.buildinfo.in
- rts/rts.cabal
- rts/wasm/JSFFI.c
- rts/wasm/scheduler.cmm
- rts/win32/libHSghc-internal.def
- testsuite/tests/codeGen/should_gen_asm/all.T
- + testsuite/tests/codeGen/should_gen_asm/mavx-should-enable-popcnt.asm
- + testsuite/tests/codeGen/should_gen_asm/mavx-should-enable-popcnt.hs
- + testsuite/tests/codeGen/should_gen_asm/msse-option-order.asm
- + testsuite/tests/codeGen/should_gen_asm/msse-option-order.hs
- testsuite/tests/count-deps/CountDepsParser.stdout
- testsuite/tests/driver/T4437.hs
- testsuite/tests/ghc-api/T11579.hs
- + testsuite/tests/ghc-api/T26264.hs
- + testsuite/tests/ghc-api/T26264.stdout
- testsuite/tests/ghc-api/all.T
- + testsuite/tests/ghc-cpp/GhcCpp01.hs
- + testsuite/tests/ghc-cpp/GhcCpp01.stderr
- + testsuite/tests/ghc-cpp/GhcCpp02.hs
- + testsuite/tests/ghc-cpp/GhcCpp02.stderr
- + testsuite/tests/ghc-cpp/all.T
- testsuite/tests/interface-stability/template-haskell-exports.stdout
- testsuite/tests/linters/notes.stdout
- testsuite/tests/linters/regex-linters/check-cpp.py
- testsuite/tests/overloadedrecflds/should_compile/BootFldReexport.stderr
- testsuite/tests/overloadedrecflds/should_fail/T16745.stderr
- testsuite/tests/overloadedrecflds/should_fail/T18999_NoDisambiguateRecordFields.stderr
- + testsuite/tests/patsyn/should_compile/T26465b.hs
- + testsuite/tests/patsyn/should_compile/T26465c.hs
- + testsuite/tests/patsyn/should_compile/T26465d.hs
- + testsuite/tests/patsyn/should_compile/T26465d.stderr
- testsuite/tests/patsyn/should_compile/all.T
- + testsuite/tests/patsyn/should_fail/T26465.hs
- + testsuite/tests/patsyn/should_fail/T26465.stderr
- testsuite/tests/patsyn/should_fail/all.T
- testsuite/tests/perf/should_run/UniqLoop.hs
- + testsuite/tests/printer/CppCommentPlacement.hs
- testsuite/tests/regalloc/regalloc_unit_tests.hs
- testsuite/tests/simplCore/should_compile/rule2.stderr
- testsuite/tests/th/T8761.stderr
- utils/check-exact/Main.hs
- utils/check-exact/Parsers.hs
- utils/check-exact/Preprocess.hs
- utils/check-exact/Utils.hs
- utils/deriveConstants/Main.hs
- utils/haddock/haddock-api/src/Haddock/Backends/Hyperlinker/Parser.hs
- utils/haddock/haddock-api/src/Haddock/Parser.hs
- utils/haddock/haddock-api/src/Haddock/Types.hs
- utils/jsffi/dyld.mjs
The diff was not included because it is too large.
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a947e98700317c67a46614f74625bb…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/a947e98700317c67a46614f74625bb…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
Simon Peyton Jones pushed to branch wip/T26349 at Glasgow Haskell Compiler / GHC
Commits:
66ad3ca0 by Simon Peyton Jones at 2025-10-25T13:18:56+01:00
Remove trace
- - - - -
1 changed file:
- compiler/GHC/Tc/Types/Evidence.hs
Changes:
=====================================
compiler/GHC/Tc/Types/Evidence.hs
=====================================
@@ -135,8 +135,51 @@ maybeSymCo NotSwapped co = co
************************************************************************
-}
-{- Note [WpSubType]
-~~~~~~~~~~~~~~~~~~~
+{- Note [Deep subsumption and WpSubType]
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+When making DeepSubsumption checks, we may end up with hard-to-spot identity wrappers.
+For example (#26255) suppose we have
+ (forall a. Eq a => a->a) -> Int <= (forall a. Eq a => a->a) -> Int
+The two types are equal so we should certainly get an identity wrapper. But we'll get
+tihs wrapper from `tcSubType`:
+ WpFun (WpTyLam a <.> WpEvLam dg <.> WpLet (dw=dg) <.> WpEvApp dw <.> WpTyApp a)
+ WpHole
+That elaborate wrapper is really just a no-op, but it's far from obvious. If we just
+desugar (HsWrap f wp) straightforwardly we'll get
+ \(g:forall a. Eq a => a -> a).
+ f (/\a. \(dg:Eq a). let dw=dg in g a dw)
+
+To recognise that as just `f`, we'd have to eta-reduce twice. But eta-reduction
+is not sound in general, so we'll end up retaining the lambdas. Two bad results
+
+* Adding DeepSubsumption gratuitiously makes programs less efficient.
+
+* When the subsumption is on the LHS of a rule, or in a SPECIALISE pragma, we
+ may not be able to make a decent RULE at all, and will fail with "LHS of rule
+ is too complicated to desugar (#26255)
+
+It'd be nicest to solve the problem at source, by never generating those
+gruesome wrappers in the first place, but we can't do that because
+
+* The WpTyLam and WpTyApp are not introduced together in `tcSubType`, so we can't
+ easily cancel them out. Even if we have
+ forall a. t1 <= forall a. t2
+ there is no guarantee that these are the "same" a. E.g.
+ forall a b. a -> b -> b <= forall x y. y -> x - >x
+ Similarly WpEvLam and WpEvApp
+
+* We have not yet done constraint solving so we don't know what evidence will
+ end up in those WpLet bindings.
+
+TL;DR we must generate
+Here's our solution
+
+(DSST1) Tag the wrappers generated from a subtype check with WpSubType. In normal
+ wrappers the binders of a WpTyLam or WpEvLam can scope over the "hole" of the
+ wrapper -- that is how we introduce type-lambdas and dictionary-lambda into the
+ terms! But in /subtype/ wrappers, these type/dictionary lambdas only scope over
+ the WpTyApp and WpEvApp nodes in the /same/ wrapper. That is w
+
(WpSubType wp) means the same as `wp`, but with the added promise that
the binders in `wp` do not scope over the hole
-}
@@ -378,7 +421,7 @@ collectHsWrapBinders wrap = go wrap []
optSubTypeHsWrapper :: HsWrapper -> HsWrapper
optSubTypeHsWrapper wrap
- = pprTrace "optHsWrapper" (vcat [ text "in:" <+> ppr wrap, text "out:" <+> ppr (opt wrap) ]) $
+ = -- pprTrace "optHsWrapper" (vcat [ text "in:" <+> ppr wrap, text "out:" <+> ppr (opt wrap) ]) $
opt wrap
where
opt :: HsWrapper -> HsWrapper
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/66ad3ca0e80547646d98a3df5f35133…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/66ad3ca0e80547646d98a3df5f35133…
You're receiving this email because of your account on gitlab.haskell.org.
1
0
Simon Peyton Jones pushed to branch wip/T26349 at Glasgow Haskell Compiler / GHC
Commits:
ce4975ed by Simon Peyton Jones at 2025-10-25T12:51:24+01:00
Better now
Added WpSubType
- - - - -
5 changed files:
- compiler/GHC/Hs/Syn/Type.hs
- compiler/GHC/HsToCore/Binds.hs
- compiler/GHC/Tc/Types/Evidence.hs
- compiler/GHC/Tc/Utils/Unify.hs
- compiler/GHC/Tc/Zonk/Type.hs
Changes:
=====================================
compiler/GHC/Hs/Syn/Type.hs
=====================================
@@ -191,6 +191,7 @@ hsWrapperType :: HsWrapper -> Type -> Type
hsWrapperType wrap ty = prTypeType $ go wrap (ty,[])
where
go WpHole = id
+ go (WpSubType w) = go w
go (w1 `WpCompose` w2) = go w1 . go w2
go (WpFun _ w2 (Scaled m exp_arg) _) = liftPRType $ \t ->
let act_res = funResultTy t
=====================================
compiler/GHC/HsToCore/Binds.hs
=====================================
@@ -1598,9 +1598,10 @@ ds_hs_wrapper :: HsWrapper
-> ((CoreExpr -> CoreExpr) -> DsM a)
-> DsM a
ds_hs_wrapper hs_wrap
- = go (optHsWrapper hs_wrap)
+ = go hs_wrap
where
go WpHole k = k $ \e -> e
+ go (WpSubType w) k = go (optSubTypeHsWrapper w) k
go (WpTyApp ty) k = k $ \e -> App e (Type ty)
go (WpEvLam ev) k = k $ Lam ev
go (WpTyLam tv) k = k $ Lam tv
=====================================
compiler/GHC/Tc/Types/Evidence.hs
=====================================
@@ -8,11 +8,11 @@ module GHC.Tc.Types.Evidence (
-- * HsWrapper
HsWrapper(..),
(<.>), mkWpTyApps, mkWpEvApps, mkWpEvVarApps, mkWpTyLams, mkWpForAllCast,
- mkWpEvLams, mkWpLet, mkWpFun, mkWpCastN, mkWpCastR, mkWpEta,
+ mkWpEvLams, mkWpLet, mkWpFun, mkWpCastN, mkWpCastR, mkWpEta, mkWpSubType,
collectHsWrapBinders,
idHsWrapper, isIdHsWrapper,
pprHsWrapper, hsWrapDictBinders,
- optHsWrapper,
+ optSubTypeHsWrapper,
-- * Evidence bindings
TcEvBinds(..), EvBindsVar(..),
@@ -135,11 +135,20 @@ maybeSymCo NotSwapped co = co
************************************************************************
-}
+{- Note [WpSubType]
+~~~~~~~~~~~~~~~~~~~
+(WpSubType wp) means the same as `wp`, but with the added promise that
+the binders in `wp` do not scope over the hole
+-}
+
-- We write wrap :: t1 ~> t2
-- if wrap[ e::t1 ] :: t2
data HsWrapper
= WpHole -- The identity coercion
+ | WpSubType HsWrapper -- (WpSubType wp) Means the same as `wp`
+ -- But see Note [WpSubType]
+
| WpCompose HsWrapper HsWrapper
-- (wrap1 `WpCompose` wrap2)[e] = wrap1[ wrap2[ e ]]
--
@@ -246,6 +255,11 @@ mkWpFun w_arg w_res t1 t2 = WpFun w_arg w_res t1 t2
-- Unfortunately, we can't check this with an assertion here, because of
-- [Wrinkle: Typed Template Haskell] in Note [hasFixedRuntimeRep] in GHC.Tc.Utils.Concrete.
+mkWpSubType :: HsWrapper -> HsWrapper
+mkWpSubType WpHole = WpHole
+mkWpSubType (WpCast co) = WpCast co
+mkWpSubType w = WpSubType w
+
mkWpEta :: Type -> [Id] -> HsWrapper -> HsWrapper
-- (mkWpEta [x1, x2] wrap) [e]
-- = \x1. \x2. wrap[e x1 x2]
@@ -336,6 +350,7 @@ hsWrapDictBinders wrap = go wrap
go (w1 `WpCompose` w2) = go w1 `unionBags` go w2
go (WpFun _ w _ _) = go w
go WpHole = emptyBag
+ go (WpSubType {}) = emptyBag -- See Note [WpSubType]
go (WpCast {}) = emptyBag
go (WpEvApp {}) = emptyBag
go (WpTyLam {}) = emptyBag
@@ -351,6 +366,7 @@ collectHsWrapBinders wrap = go wrap []
go :: HsWrapper -> [HsWrapper] -> ([Var], HsWrapper)
go (WpEvLam v) wraps = add_lam v (gos wraps)
go (WpTyLam v) wraps = add_lam v (gos wraps)
+ go (WpSubType w) wraps = go w wraps
go (WpCompose w1 w2) wraps = go w1 (w2:wraps)
go wrap wraps = ([], foldl' (<.>) wrap wraps)
@@ -360,124 +376,113 @@ collectHsWrapBinders wrap = go wrap []
add_lam v (vs,w) = (v:vs, w)
-optHsWrapper :: HsWrapper -> HsWrapper
-optHsWrapper wrap
- = foldr (<.>) WpHole (norm wrap [])
- -- let wrap' = foldr (<.>) WpHole (norm wrap [])
- -- in pprTrace "optHsWrapper" (vcat [ text "in:" <+> ppr wrap, text "out:" <+> ppr wrap' ]) $
- -- wrap'
+optSubTypeHsWrapper :: HsWrapper -> HsWrapper
+optSubTypeHsWrapper wrap
+ = pprTrace "optHsWrapper" (vcat [ text "in:" <+> ppr wrap, text "out:" <+> ppr (opt wrap) ]) $
+ opt wrap
where
- norm :: HsWrapper -> [HsWrapper] -> [HsWrapper]
- -- norm w ws = w <.> (foldr <.> WpHole ws)
- -- INVARIANT: ws:[HsWrapper] is normalised
- norm WpHole ws = ws
- norm (w1 `WpCompose` w2) ws = norm w1 (norm w2 ws)
- norm (WpCast co) ws = norm_co co ws
- norm (WpEvLam ev) ws = norm_ev_lam ev ws
- norm (WpTyLam tv) ws = norm_ty_lam tv ws
- norm (WpLet binds) ws = norm_let binds ws
- norm (WpFun w1 w2 sty1 ty2) ws = norm_fun w1 w2 sty1 ty2 ws
- norm w@(WpTyApp {}) ws = w : ws
- norm w@(WpEvApp {}) ws = w : ws
+ opt :: HsWrapper -> HsWrapper
+ opt w = foldr (<.>) WpHole (opt1 w [])
+
+ opt1 :: HsWrapper -> [HsWrapper] -> [HsWrapper]
+ -- opt1 w ws = w <.> (foldr <.> WpHole ws)
+ -- INVARIANT: ws:[HsWrapper] is optimised
+ opt1 WpHole ws = ws
+ opt1 (WpSubType w) ws = opt1 w ws
+ opt1 (w1 `WpCompose` w2) ws = opt1 w1 (opt1 w2 ws)
+ opt1 (WpCast co) ws = opt_co co ws
+ opt1 (WpEvLam ev) ws = opt_ev_lam ev ws
+ opt1 (WpTyLam tv) ws = opt_ty_lam tv ws
+ opt1 (WpLet binds) ws = opt_let binds ws
+ opt1 (WpFun w1 w2 sty1 ty2) ws = mk_wp_fun (opt w1) (opt w2) sty1 ty2 ws
+ opt1 w@(WpTyApp {}) ws = w : ws
+ opt1 w@(WpEvApp {}) ws = w : ws
------------------
- norm_let b@(EvBinds bs) ws | isEmptyBag bs = ws
- | otherwise = WpLet b : ws
- norm_let (TcEvBinds {}) _ = pprPanic "optHsWrapper1" (ppr wrap)
+ opt_let b@(EvBinds bs) ws | isEmptyBag bs = ws
+ | otherwise = WpLet b : ws
+ opt_let (TcEvBinds {}) _ = pprPanic "optHsWrapper1" (ppr wrap)
-----------------
-- (WpTyLam a <+> WpTyApp a <+> w) = w
- norm_ty_lam tv (WpTyApp ty : ws)
+ opt_ty_lam tv (WpTyApp ty : ws)
| Just tv' <- getTyVar_maybe ty
, tv==tv'
= ws
-- (WpTyLam a <+> WpCastCo co <+> w)
-- = WpCast (ForAllCo a co) (WpTyLam <.> w)
- norm_ty_lam tv (WpCast co : ws)
- = norm_co (mkHomoForAllCo tv co) (norm_ty_lam tv ws)
+ opt_ty_lam tv (WpCast co : ws)
+ = opt_co (mkHomoForAllCo tv co) (opt_ty_lam tv ws)
- norm_ty_lam tv (WpLet bs : ws)
+ opt_ty_lam tv (WpLet bs : ws)
| Just ws' <- pushWpLet bs ws
- = norm_ty_lam tv ws'
+ = opt_ty_lam tv ws'
- norm_ty_lam tv ws
+ opt_ty_lam tv ws
= WpTyLam tv : ws
-----------------
-- (WpEvLam ev <+> WpEvAp ev <+> w) = w
- norm_ev_lam ev (WpEvApp ev_tm : ws)
+ opt_ev_lam ev (WpEvApp ev_tm : ws)
| EvExpr (Var ev') <- ev_tm
, ev == ev'
= ws
-- (WpEvLam ev <.> WpCast co <.> w)
-- = WpCast (FunCo ev co) (WpEvLam <.> w)
- norm_ev_lam ev (WpCast co : ws)
- = norm_co fun_co (norm_ev_lam ev ws)
+ opt_ev_lam ev (WpCast co : ws)
+ = opt_co fun_co (opt_ev_lam ev ws)
where
fun_co = mkFunCo Representational FTF_C_T
(mkNomReflCo ManyTy)
(mkRepReflCo (idType ev))
co
- norm_ev_lam ev (WpLet bs : ws)
+ opt_ev_lam ev (WpLet bs : ws)
| Just ws' <- pushWpLet bs ws
- = norm_ev_lam ev ws'
+ = opt_ev_lam ev ws'
- norm_ev_lam ev ws
+ opt_ev_lam ev ws
= WpEvLam ev : ws
-----------------
-- WpCast co <.> WpCast co' <+> ws = WpCast (co;co') ws
- norm_co co (WpCast co' : ws) = norm_co (co `mkTransCo` co') ws
- norm_co co ws | isReflexiveCo co = ws
- | otherwise = WpCast co : ws
+ opt_co co (WpCast co' : ws) = opt_co (co `mkTransCo` co') ws
+ opt_co co ws | isReflexiveCo co = ws
+ | otherwise = WpCast co : ws
------------------
- norm_fun w1 w2 (Scaled w t1) t2 ws
- = case (optHsWrapper w1, optHsWrapper w2) of
+ mk_wp_fun w1 w2 sty1@(Scaled w t1) ty2 ws
+ = case (w1, w2) of
(WpHole, WpHole) -> ws
- (WpLet {}, WpHole) -> ws
(WpHole, WpCast co2) -> co_ify (mkRepReflCo t1) co2
- (WpCast co1, WpHole) -> co_ify (mkSymCo co1) (mkRepReflCo t2)
+ (WpCast co1, WpHole) -> co_ify (mkSymCo co1) (mkRepReflCo ty2)
(WpCast co1, WpCast co2) -> co_ify (mkSymCo co1) co2
- (w1', w2') -> WpFun w1' w2' (Scaled w t1) t2 : ws
+ (w1', w2') -> WpFun w1' w2' sty1 ty2 : ws
where
- co_ify co1 co2 = norm_co (mk_wp_fun_co w co1 co2) ws
+ co_ify co1 co2 = opt_co (mk_wp_fun_co w co1 co2) ws
pushWpLet :: TcEvBinds -> [HsWrapper] -> Maybe [HsWrapper]
pushWpLet tc_ev_binds ws
| EvBinds binds <- tc_ev_binds
, Just env <- evBindIdSwizzle binds
- = case go env ws of
- WpLet {} : _ -> Nothing
- ws' -> Just ws'
+ = go env ws
| otherwise
= Nothing
where
- go :: IdEnv Id -> [HsWrapper] -> [HsWrapper]
- go env (WpTyApp ty : ws') = WpTyApp ty : go env ws'
- go env (WpCast co : ws') = WpCast co : go env ws'
- go env (WpTyLam tv : ws')
- | not (tv_captures env tv)
- = WpTyLam tv : go env ws'
-
- go env (WpEvLam ev : ws')
- | not (ev `elemVarEnv` env) -- `ev` must not be in the domain
- , not (anyVarEnv (== ev) env) -- or range of `env`
- = WpEvLam ev : go env ws'
-
- go env (WpEvApp (EvExpr (Var v)) : ws')
- | Just v' <- swizzleId env v
- = WpEvApp (EvExpr (Var v')) : go env ws'
-
- go _ ws = WpLet tc_ev_binds : ws
-
- tv_captures :: IdEnv Id -> TyVar -> Bool
- tv_captures env tv = anyVarEnv bad env
- where
- bad id = anyFreeVarsOfType (== tv) (idType id)
-
+ go :: IdEnv Id -> [HsWrapper] -> Maybe [HsWrapper]
+ go env (WpCast co : ws) = do { ws' <- go env ws
+ ; return (WpCast co : ws') }
+ go env (WpTyApp ty : ws) = do { ws' <- go env ws
+ ; return (WpTyApp ty : ws') }
+ go env (WpEvApp (EvExpr (Var v)) : ws)
+ = do { v' <- swizzleId env v
+ ; ws' <- go env ws
+ ; return (WpEvApp (EvExpr (Var v')) : ws') }
+
+ go _ ws = case ws of
+ [] -> Just []
+ (_:_) -> Nothing -- Could not fully eliminate it
swizzleId :: IdEnv Id -> Id -> Maybe Id
-- Nothing <=> ran out of fuel
@@ -1158,7 +1163,8 @@ pprHsWrapper wrap pp_thing_inside
-- True <=> appears in function application position
-- False <=> appears as body of let or lambda
help it WpHole = it
- help it (WpCompose f1 f2) = help (help it f2) f1
+ help it (WpCompose w1 w2) = help (help it w2) w1
+ help it (WpSubType w) = no_parens $ text "subtype" <> braces (help it w False)
help it (WpFun f1 f2 (Scaled w t1) _) = add_parens $ text "\\(x" <> dcolon <> brackets (ppr w) <> ppr t1 <> text ")." <+>
help (\_ -> it True <+> help (\_ -> text "x") f1 True) f2 False
help it (WpCast co) = add_parens $ sep [it False, nest 2 (text "|>"
=====================================
compiler/GHC/Tc/Utils/Unify.hs
=====================================
@@ -1426,11 +1426,12 @@ tcSubTypeDS :: HsExpr GhcRn
-- DeepSubsumption <=> when checking, this type
-- is deeply skolemised
-> TcM HsWrapper
--- Only one call site, in GHC.Tc.Gen.App.tcApp
+-- Only one call site, in GHC.Tc.Gen.App.checkResultTy
tcSubTypeDS rn_expr act_rho exp_rho
- = tc_sub_type_deep Top (unifyExprType rn_expr) orig GenSigCtxt act_rho exp_rho
- where
- orig = exprCtOrigin rn_expr
+ = do { wrap <- tc_sub_type_deep Top (unifyExprType rn_expr)
+ (exprCtOrigin rn_expr)
+ GenSigCtxt act_rho exp_rho
+ ; return (mkWpSubType wrap) }
---------------
@@ -1503,7 +1504,8 @@ tc_sub_type :: (TcType -> TcType -> TcM TcCoercionN) -- How to unify
----------------------
tc_sub_type unify inst_orig ctxt ty_actual ty_expected
= do { ds_flag <- getDeepSubsumptionFlag
- ; tc_sub_type_ds Top ds_flag unify inst_orig ctxt ty_actual ty_expected }
+ ; wrap <- tc_sub_type_ds Top ds_flag unify inst_orig ctxt ty_actual ty_expected
+ ; return (mkWpSubType wrap) }
----------------------
tc_sub_type_ds :: Position p -- ^ position in the type (for error messages only)
=====================================
compiler/GHC/Tc/Zonk/Type.hs
=====================================
@@ -1231,6 +1231,8 @@ zonk_cmd_top (HsCmdTop (CmdTopTc stack_tys ty ids) cmd)
-------------------------------------------------------------------------
zonkCoFn :: HsWrapper -> ZonkBndrTcM HsWrapper
zonkCoFn WpHole = return WpHole
+zonkCoFn (WpSubType w) = do { w' <- zonkCoFn w
+ ; return (WpSubType w') }
zonkCoFn (WpCompose c1 c2) = do { c1' <- zonkCoFn c1
; c2' <- zonkCoFn c2
; return (WpCompose c1' c2') }
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ce4975ed0c0af9479fc5ab11e25f7f2…
--
View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/commit/ce4975ed0c0af9479fc5ab11e25f7f2…
You're receiving this email because of your account on gitlab.haskell.org.
1
0