Closed galenhuntington closed 6 years ago
-XNoStarIsType
is necessary for this file because of https://github.com/agrafix/superrecord/pull/18/files#diff-4664f9cd350dad78d2a8a3f6a49a90dbL20. With this switch, the other uses of *
have to be changed to Type
in this file.
-XStarIsType
is the default (for now), so other files that don't use *
as a type operator are fine. (There seems to be a long-term plan to replace *
with Type
entirely, but that is a ways off.)
With these changes, I was able to build and install successfully with ghc-8.6.1-alpha1
.
Ah, I see. Do you think it would also make sense to make a patch-level release now, or wait until GHC 8.6 is officially out?
Well, I would say get in front of this now unless there's a reason to hold back. However, that's the opinion of someone who prefers the bleeding edge; I am already trying to use GHC 8.6.
Hm, it looks like I don't have release rights anymore. @agrafix would you cut a new release?
Hm, weird, for some reason it got removed. Cutting a release now.
NB: it looks like the change in GHC 8.6 has been reverted due to the amount of breakage it caused, but this patch should still be harmless (and might be needed again in the future)
I'll see if I can add a 8.6 build step to CI
NB: it looks like the change in GHC 8.6 has been reverted due to the amount of breakage it caused, but this patch should still be harmless (and might be needed again in the future)
So far as I know, the only change reverted was that TypeOperators
no longer implies NoStarIsType
, and this reversion already landed in alpha1
. Otherwise, with this implication, more modules than just this one would have to be changed, but on the other hand the CPP in this patch would not be needed. The other changes are still needed in any case.
Meanwhile, the committee has just accepted a proposal to remove the *
kind completely from the language. So, eventually *
will have to be replaced with Type
throughout, although I expect a lead time of at least a year or two. (That change would also have the benefit of consistency.)
What's the rule saying where
*
should and should not be replaced? E.g. you left a star here: https://github.com/agrafix/superrecord/blob/master/src/SuperRecord.hs#L101