[ghc-steering-committee] #380 GHC2021: Current status

Spiwack, Arnaud arnaud.spiwack at tweag.io
Fri Dec 4 12:35:25 UTC 2020


I would like to urge us not to include NoStarIsType in the defaults until
we include StandaloneKindSignature as well. Mostly on aesthetic grounds.

It's fairly obvious that NoStarIsType will be the default eventually. I
just think that GHC2021 is premature.


On Fri, Dec 4, 2020 at 1:09 PM Simon Peyton Jones via
ghc-steering-committee <ghc-steering-committee at haskell.org> wrote:

> |  that. At least not without exposing Type in the prelude
>
> I'm often annoyed by the need to import Data.Kind(Type).  Exposing Type
> from the Prelude might be just the right thing.
>
> Simon
>
> |  -----Original Message-----
> |  From: ghc-steering-committee <ghc-steering-committee-
> |  bounces at haskell.org> On Behalf Of Joachim Breitner
> |  Sent: 04 December 2020 11:24
> |  To: ghc-steering-committee at haskell.org
> |  Subject: Re: [ghc-steering-committee] #380 GHC2021: Current status
> |
> |  Hi,
> |
> |  Am Freitag, den 04.12.2020, 11:07 +0000 schrieb Tom Harding:
> |  > After all, the introduction of this extension won’t break any
> |  existing
> |  > code (because it won’t be enabled) and it’s probably best to steer
> |  > people (very gently) away from * ~ Type.
> |  >
> |  > This decision obviously hinges on a couple of assumptions, and maybe
> |  > this is a controversial opinion, but I don’t think it’s necessarily
> |  a
> |  > bad thing to include this, even though it disagrees with the
> |  > Haskell2010 spec.
> |
> |  I strongly disagree. The goal of GHC2021 is, in my book, _not_ to
> |  change peoples behavior, and should only include uncontroversial,
> |  harmless extensions. Note that we want this to be the _default_ mode
> |  of GHC as well, so it may break existing non-cabalized scripts.
> |
> |  So why getting people away from expecting and writing * may be a
> |  laudible goal, I’d be rather hesitant to use _this_ tool to achieve
> |  that. At least not without exposing Type in the prelude:
> |
> |     Prelude> :set -XKindSignatures
> |     Prelude> :k Maybe
> |     Maybe :: * -> *
> |     Prelude> :k Maybe :: * -> *
> |     Maybe :: * -> * :: * -> *
> |
> |     Prelude> :set -XNoStarIsType
> |     Prelude> :k Maybe
> |     Maybe :: Type -> Type
> |     Prelude> :k Maybe :: Type -> Type
> |
> |     <interactive>:1:10: error:
> |         Not in scope: type constructor or class ‘Type’
> |
> |     <interactive>:1:18: error:
> |         Not in scope: type constructor or class ‘Type’
> |
> |     I find this too much of a _change_ (rather than a bunch of harmless
> |     opt-in extensions and corner case cleanups) to be eligible for
> |  GHC2021.
> |
> |
> |     I _could_ get behind a less drastic change, e.g. a -XStarCanBeType
> |     where GHC would by default print things using Type, have Type in
> |  scope
> |     by default (or print it with Data.Kind.Type), but also accept * as
> |  Type
> |     so that there is a nicer transition period. More careful nudging,
> |  less
> |     throat-forcing of this change.
> |
> |
> |     In any case, even if you think that GHC202x is the right tool to
> |     facilitate this change, then I recommend to not do it with GHC2021.
> |     Let's make GHC2021 smooth as butter for anyone, that it gets
> |  actually
> |     used with joy by most, and there is no community split because of
> |  it!
> |
> |     Then we may have a better stand to carefully make controversial
> |  changes
> |     with GHC2022.
> |
> |     Cheers,
> |     Joachim
> |
> |     --
> |     Joachim Breitner
> |    mail at joachim-breitner.de
> |
> |  https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.j
> |  oachim-
> |  breitner.de%2F&data=04%7C01%7Csimonpj%40microsoft.com%7C71fd2da218
> |  274565766708d8984726bd%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C63
> |  7426779203482378%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV
> |  2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=al%2FPwBdOBMsmI
> |  v%2F7hH3ce%2BdPCKa9K6e%2BMtfRs2vteaY%3D&reserved=0
> |
> |
> |  _______________________________________________
> |  ghc-steering-committee mailing list
> |  ghc-steering-committee at haskell.org
> |  https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fmail
> |  .haskell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-steering-
> |  committee&data=04%7C01%7Csimonpj%40microsoft.com%7C71fd2da21827456
> |  5766708d8984726bd%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C6374267
> |  79203482378%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMz
> |  IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=DvDb4rRCvnRN%2BcqM4E
> |  QSIf8kSXNypMnD6PZANjCENQI%3D&reserved=0
> _______________________________________________
> ghc-steering-committee mailing list
> ghc-steering-committee at haskell.org
> https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-steering-committee/attachments/20201204/d8738c74/attachment-0001.html>


More information about the ghc-steering-committee mailing list