Someone pointed out on the git-hub discussion that `Type` is just a type synonym for `TYPE LiftedRep` and it is odd to use a keyword for a non-primitive.  I agree.  Also, if we are going to have a special case, I'd much rather have the special case be for * or ★, rather than for `type`.



On Thu, Feb 1, 2018 at 5:58 PM Joachim Breitner <mail@joachim-breitner.de> wrote:
Hi,

Am Freitag, den 02.02.2018, 12:40 +1100 schrieb Manuel M T Chakravarty:
> However, I have to say, I am very intrigued with the alternative to
> the proposal that Richard mentioned in this thread, namely to use
> ”type”, not ”Type”. The more I think about it, the more I like this
> idea.

This is somewhat analogous to (->). We could treat that as a normal
binary operator that his exported by the Prelude, one that could be
hidden or shadowed… but we don’t. “type” would be another thing that
“Could be a normal name but isn’t”.

But I am not convinced yet.

In particular in light of our use of “type” as a explicit namespace
token – so far in export and import lists and fixity declarations – I
worry that we will prevent ourselves from using more such explicit
namespace things in the future.

Also, the last point:

    Finally, it means that

        type T = Bool

      adds another equality to ”type”, which is really nice.

doesn’t really work for me. If “type” is now just another (albeit)
special object, then this looks rather like a functoin definition for
this thing called “type”.

Cheers,
Joachim

--
Joachim Breitner
  mail@joachim-breitner.de
  http://www.joachim-breitner.de/
_______________________________________________
ghc-steering-committee mailing list
ghc-steering-committee@haskell.org
https://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-steering-committee