Changes between Version 5 and Version 6 of Design/TypeNaming


Ignore:
Timestamp:
Sep 24, 2008 2:56:03 PM (7 years ago)
Author:
guest
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Design/TypeNaming

    v5 v6  
    3434 data a + b = Left a | Right b
    3535}}}
    36 That is, allow oprerators like `(+)` to be type constructors.
     36That is, allow operators like `(+)` to be type constructors.
    3737You can find discussion of the merits of this proposal here.
    3838At first it seems fairly straightforward; for example, it is
     
    5454In these two contexts we need to disambiguate whether we mean
    5555the type-level or value-level identifier.
     56
     57''This suggestion seems inconsistent with the value level.  Today (with -XTypeOperators) one can write "`data T (-=>) = C (Int -=> Bool)`" and "`-=>`" is a type variable, and this is a very useful feature (just look at Arrow).  Being able to use, e.g., "`+`" as a type constructor it's no longer possible to tell syntactically what's a type variable and what's a type constructor.  One could use what's in scope to distinguish them, but that's not how it works on the value level.  -- Lennart''
    5658
    5759'''Proper kinding'''.  At the moment you see a lot of this