Changes between Version 5 and Version 6 of Design/TypeNaming


Ignore:
Timestamp:
Sep 24, 2008 2:56:03 PM (6 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