
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
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