[ghc-steering-committee] Please review #270: Extend Term-Level Lookup rules

Alejandro Serrano Mena trupill at gmail.com
Mon Jun 1 17:10:49 UTC 2020


Hi,
My first reaction is also to reject this proposal. I feel it is too
invasive.

Regards,
Alejandro

El lun., 1 jun. 2020 a las 18:40, Iavor Diatchki (<iavor.diatchki at gmail.com>)
escribió:

> Hello,
>
> I am the shepherd for proposal #270, and it is time for the committee to
> review the proposal.  The discussion and the proposal are available here:
> https://github.com/ghc-proposals/ghc-proposals/pull/270
>
> Here is my summary of the proposal:
>
> The proposal aims to solve the "namespace problem" which appears to
> largely be related to fact that Haskell has two namespaces, and so types
> and values may have the same name.
>
> Proposed changes:
>    1. Change the scoping rules for the language so that type names are in
> scope at the value level, but values always shadow types.
>    2. Add a new form of import, which can import only the names from a
> particular names space
>    3. Change the way built-in syntax for tuples and lists works and
> deprecated ' and '' from DataKinds and TH respectively.   This is a bit
> elaborate, have a look in the proposal for details
>    4. Add a bunch of warnings that would trigger if you wrote code that
> made use of Haskell's different name spaces
>
> My recommendation is that the proposal is rejected, as I don't think that
> these changes would help Haskell programmers, at least based on the way I
> use Haskell.  In particular, here are my thoughts on each of the above
> bullets:
>
>    1. This is mostly about passing type arguments to functions---I would
> prefer a notation that is more explicit about the fact that we are passing
> in a type, and not just a normal argument.
>
>    2. When I group things into modules, it is usually because they are
> intended to be used together.  I think I would rarely want to import only
> the types or only the values in a module, so I imagine it would be much
> more common to have to write two imports.
>
>    3. This is quite an intrusive change, that is likely to break code.  I
> am also not keen to have to use type families, every time I want to use a
> tuple.
>
>    4. Using the same name for a data constructor and a type is very common
> in Haskell.  I find it particularly useful when defining records.  I don't
> need warnings to let me know that I've done it, as it is highly unlikely
> that I did it on accident.
>
> -Iavor
>
>
>
>
>
>
>
>
> _______________________________________________
> 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/20200601/c042e2bb/attachment.html>


More information about the ghc-steering-committee mailing list