[ghc-steering-committee] Proposal: Embrace Type in Type

Simon Marlow marlowsd at gmail.com
Tue Feb 20 10:16:04 UTC 2018


Personally I'm not convinced by the motivation for deprecating '*': "GHC's
ability to parse * has a significant cost.". There are two kinds of cost
here:
1. implementation complexity
2. potential for users to be confused

for (1), Haskell historically has not made concessions in the name of
implementation simplicity, other concerns have tended to rate more highly:
familiarity, conciseness, consistency, ease of use and so forth. (for an
example of this tradeoff in action just look at the layout rule).

for (2), I think even though we strive for consistency in language design,
humans actually cope with exceptions very well - a few quirks here and
there actually help us remember things.  So the current situation isn't
terrible, in my view.

Furthermore in this case we're also fighting inertia: there's a lot of
code, documentation and other materials using the existing syntax.

Perhaps '*' wouldn't be what we would choose if we had a clean slate, but
at this point I think changing it is likely worse than not changing it.

Cheers
Simon

On 12 February 2018 at 03:54, Manuel M T Chakravarty <chak at justtesting.org>
wrote:

> Yes, existing code uses ’Type’, but it also uses ’*’ (GHC included) —
> i.e., this change is going to be a pain for some devs anyway. A pragma that
> couples the removal of ’*’ as a synonym for ’Type’ with the implicit
> importing of ’Type’ could encourage people to just apply both changes in
> one go.
>
> Manuel
>
> > Am 12.02.2018 um 02:04 schrieb Joachim Breitner <
> mail at joachim-breitner.de>:
> >
> > Hi,
> >
> >
> > Am 11. Februar 2018 01:43:03 EST schrieb Manuel M T Chakravarty <
> chak at justtesting.org>:
> >> So, I think, we need a convenient and concise notation that doesn’t
> >> require extra imports.
> >
> > we have precedence for that: (->) could just as well be a name exported
> from Data.Function and the Prelude, with all the usual rules around it
> (qualifications, exports). But it is not, and rather parses as it's own
> thing. So far, nobody seems to bother about this exception from the rule.
> >
> > But doing this to `Type` is annoying because existing code out there
> already used `Type`, in particular GHC.
> >
> > Maybe if we can find a uncommonly used, short, descriptive name then
> making that available without imports is viable? Do we have any good ideas?
> >
> >
> > Joachim
> > _______________________________________________
> > ghc-steering-committee mailing list
> > ghc-steering-committee at haskell.org
> > https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee
>
> _______________________________________________
> 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/20180220/5195169f/attachment.html>


More information about the ghc-steering-committee mailing list