Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GHC 8.10 checklist #385

Closed
4 tasks done
RyanGlScott opened this issue Feb 20, 2019 · 3 comments
Closed
4 tasks done

GHC 8.10 checklist #385

RyanGlScott opened this issue Feb 20, 2019 · 3 comments

Comments

@RyanGlScott
Copy link
Collaborator

RyanGlScott commented Feb 20, 2019

This issue serves as a reminder to do certain things before we ship a new major release that supports GHC 8.10:

  • Update th-desugar (see GHC 8.10 checklist th-desugar#114).
  • Give Figure out how to promote visible type application sensibly #378 some serious consideration
  • Some simplifications can be made using visible dependent quantification (VDQ):
    • This comment in Data.Singletons.Promote.Defun suggests some code cleanup that would be possible with VDQ:

      Having to explicitly annotate each occurrence of every kind variable on
      the LHS like this is a bit tiresome, especially since we don't have to
      do this in the return kind. If GHC had syntax for visible dependent
      quantification, we could avoid this step entirely and simply write:
      data SymmetrySym1 :: forall k (t :: k). forall (a :: Proxy t) -> ...
      Until GHC gains this syntax, this is the best alternative.

    • Current, Sigma is defined to be:

      data Sigma (s :: Type) :: (s ~> Type) -> Type where

      Why not:

      type Sigma :: forall s -> (s ~> Type) -> Type
      data Sigma s t where
    • Currently, we need ImpredicativeTypes in Data.Singletons.Sigma due to this type synonym:

      However, we could eliminate the use of ImpredicativeTypes altogether by just giving Σ a standalone kind signature:

      type Σ :: forall s -> (s ~> Type) -> Type
      type Σ = Sigma
  • Future-proof singletons against the deprecation of the CUSKs extension by giving more declarations standalone kind signatures:
    • ApplyTyCon:

      type ApplyTyCon :: (k1 -> k2) -> (k1 ~> unmatchable_fun)
      type family ApplyTyCon where ...
    • SndSigma:

      type SndSigma :: forall s t. forall (sig :: Sigma s t) -> t @@ FstSigma sig
      type family SndSigma sig where ...
RyanGlScott added a commit that referenced this issue Jan 25, 2020
This is in preparation for some changes that require 8.10 as the
minimum GHC version. See #385.

Some knock-on changes include:

* Unsurprisingly, GHC 8.10 slightly changes the way `-ddump-splices`
  output is pretty-printed, so some test cases' expected output have
  been updated accordingly.

* Now that we only build against GHC 8.10, we can get rid of some CPP
  only needed for older GHCs.

* GHC 8.10 now warns about unqualified `Data.List` imports, so some
  minor tweaks are needed to avoid these warnings.
RyanGlScott added a commit that referenced this issue Jan 25, 2020
This is in preparation for some changes that require 8.10 as the
minimum GHC version. See #385.

Some knock-on changes include:

* Unsurprisingly, GHC 8.10 slightly changes the way `-ddump-splices`
  output is pretty-printed, so some test cases' expected output have
  been updated accordingly.

* Now that we only build against GHC 8.10, we can get rid of some CPP
  only needed for older GHCs.

* GHC 8.10 now warns about unqualified `Data.List` imports, so some
  minor tweaks are needed to avoid these warnings.
RyanGlScott added a commit that referenced this issue Jan 25, 2020
This is in preparation for some changes that require 8.10 as the
minimum GHC version. See #385.

Some knock-on changes include:

* Unsurprisingly, GHC 8.10 slightly changes the way `-ddump-splices`
  output is pretty-printed, so some test cases' expected output have
  been updated accordingly.

* Now that we only build against GHC 8.10, we can get rid of some CPP
  only needed for older GHCs.

* GHC 8.10 now warns about unqualified `Data.List` imports, so some
  minor tweaks are needed to avoid these warnings.
RyanGlScott added a commit that referenced this issue Jan 26, 2020
This is in preparation for some changes that require 8.10 as the
minimum GHC version. See #385.

Some knock-on changes include:

* Unsurprisingly, GHC 8.10 slightly changes the way `-ddump-splices`
  output is pretty-printed, so some test cases' expected output have
  been updated accordingly.

* Now that we only build against GHC 8.10, we can get rid of some CPP
  only needed for older GHCs.

* GHC 8.10 now warns about unqualified `Data.List` imports, so some
  minor tweaks are needed to avoid these warnings.
@RyanGlScott
Copy link
Collaborator Author

Now that GHC 8.10.1 is out, I plan to release th-desugar-1.11 and singletons-2.7 some time in the next few days (unless there are any last-minute objections).

@goldfirere
Copy link
Owner

No objections from me, certainly!

@RyanGlScott
Copy link
Collaborator Author

Fixed with the Hackage release of singletons-2.7.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants