Opened 16 months ago

Closed 15 months ago

Last modified 15 months ago

#15195 closed bug (fixed)

Merge -XPolyKinds with -XTypeInType

Reported by: goldfire Owned by: int-index
Priority: normal Milestone: 8.6.1
Component: Compiler Version: 8.2.2
Keywords: GHCProposal, TypeInType Cc: int-index
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: None/Unknown Test Case:
Blocked By: Blocking:
Related Tickets: Differential Rev(s): Phab:D4748
Wiki Page:


As described in this accepted proposal.

Change History (11)

comment:1 Changed 16 months ago by goldfire

Keywords: GHCProposal added

comment:2 Changed 16 months ago by int-index

Cc: int-index added
Owner: set to int-index

comment:3 Changed 15 months ago by Richard Eisenberg <rae@…>

In d650729/ghc:

Embrace -XTypeInType, add -XStarIsType

Implement the "Embrace Type :: Type" GHC proposal,

GHC 8.0 included a major change to GHC's type system: the Type :: Type
axiom. Though casual users were protected from this by hiding its
features behind the -XTypeInType extension, all programs written in GHC
8+ have the axiom behind the scenes. In order to preserve backward
compatibility, various legacy features were left unchanged. For example,
with -XDataKinds but not -XTypeInType, GADTs could not be used in types.
Now these restrictions are lifted and -XTypeInType becomes a redundant
flag that will be eventually deprecated.

* Incorporate the features currently in -XTypeInType into the
  -XPolyKinds and -XDataKinds extensions.
* Introduce a new extension -XStarIsType to control how to parse * in
  code and whether to print it in error messages.

Test Plan: Validate

Reviewers: goldfire, hvr, bgamari, alanz, simonpj

Reviewed By: goldfire, simonpj

Subscribers: rwbarton, thomie, mpickering, carter

GHC Trac Issues: #15195

Differential Revision:

comment:4 Changed 15 months ago by goldfire

Resolution: fixed
Status: newclosed

Thanks, @int-index, for seeing this through.

Tests are plentiful, but not new. int-index, add a test case if you're particularly inspired to.

comment:5 Changed 15 months ago by int-index

Status: closedmerge

This actually isn't in a stable branch yet.

comment:6 Changed 15 months ago by goldfire

Status: mergeclosed

We don't actually need to merge this to a stable branch, as I don't believe the 8.6 branch has been cut yet. Ben, correct me if I'm wrong.

comment:7 Changed 15 months ago by int-index

I might misunderstand how releases work, but the ghc-8.6 branch already exists and does not include this commit. Ben was actually going to cut a release without this commit but we talked about it over IRC and he agreed to merge.

The status I've set is described as:

fixed in GHC HEAD repo; please merge to GHC STABLE branch

and I think it describes the current status perfectly. If not, when would I set it?

comment:8 Changed 15 months ago by goldfire

Status: closedmerge

Oops! I didn't know that 8.6 had been cut. Normally, large commits like yours are not merged in the middle of a release cycle but wait around for the next major release. But it's appropriate to put yours in the 8.6 branch.

comment:9 Changed 15 months ago by bgamari

Well, to be clear, the ghc-8.6 branch does exist but it's still tracking master. By the end of the day I suspect it will begin diverging.

comment:10 Changed 15 months ago by bgamari

Status: mergeclosed

Alright, I've pushed a bump of ghc-8.6 including this patch. Closing.

Thanks for doing this, int-index!

comment:11 Changed 15 months ago by RyanGlScott

Keywords: TypeInType added
Note: See TracTickets for help on using tickets.