Be pickier about unsaturated synonyms in :kind
Summary:
We currently permit any and all uses of unsaturated type
synonyms and type families in GHCi's :kind
command, which allows
strange interactions like this one:
> :set -XTypeFamilies -XPolyKinds
> type family Id (a :: k)
> type instance Id a = a
> type Foo x = Maybe
> :kind! Id Foo
This is probably a stretch too far, so this patch moves to disallow
unsaturated synonyms that aren't at the top level (we still want to
allow :kind Id
, for instance). We do this by augmenting GhciCtxt
with an additional Bool
field to indicate if we are at the
outermost level of the type being passed to :kind
or not. See
Note [Unsaturated type synonyms in GHCi]
in TcValidity
for the
full story.
Test Plan: make test TEST=T16013
Reviewers: goldfire, bgamari
Reviewed By: goldfire
Subscribers: simonpj, goldfire, rwbarton, carter
GHC Trac Issues: #16013 (closed)
Differential Revision: https://phabricator.haskell.org/D5471