Changes between Version 1 and Version 2 of TagExportsWithNamespace


Ignore:
Timestamp:
Feb 23, 2006 2:58:23 PM (8 years ago)
Author:
malcolm.wallace@…
Comment:

alternative proposal

Legend:

Unmodified
Added
Removed
Modified
  • TagExportsWithNamespace

    v1 v2  
    4949            | [class]   tycls [ (..) | ( var_1, ... , var_n ) ]         (n>=0) 
    5050}}} 
     51 
     52== Variations == 
     53 
     54It would be better not to need to distinguish between type, newtype, and data.  These names all live in the same namespace.  And for implementation-abstract reasons, it would be useful not to need to reveal exactly how a type constructor was defined.  So an alternative proposal is to use ''no'' keyword for type constructors, but the 'class' keyword for classes.  This distinguishes the two capitalised namespaces exactly, and minimally.  With this scheme, we should probably remove the optionality of the class keyword. 
     55 
     56{{{ 
     57    export  ->        qvar 
     58            |         qtycon [ (..) | ( cname_1, ... , cname_n )        (n>=0) 
     59            |  class  qtycls [ (..) | ( var_1, ... , var_n )            (n>=0) 
     60            |  module modid 
     61 
     62    import  ->       var 
     63            |        tycon [ (..) | ( cname_1, ... , cname_n ) ]        (n>=0) 
     64            |  class tycls [ (..) | ( var_1, ... , var_n ) ]            (n>=0) 
     65}}}