Changes between Version 1 and Version 2 of ModuleSystem


Ignore:
Timestamp:
Nov 29, 2005 11:26:29 PM (8 years ago)
Author:
john@…
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ModuleSystem

    v1 v2  
     1= Module System oddities = 
     2 
     3There are minor inconsistencies in the current module system that cause confusion for users and complications for implementors. The issue is that while import, export, and hiding declarations have the same syntax, they have slightly different interpretations when it comes to names in the typespace. 
     4 
     5In particular capital names are treated as types or classes in imports and exports but are treated as types, classes or value constructors in hiding clauses. 
     6 
     7== Proposal == 
     8 
     9Make capital names _always_ refer to value constructors, the presence of a subordinate list will distinguish type and class names. 
     10 
     11so T will refer to a constructor always and T() will refer to a class or type always. 
     12 
     13This will not only make everything consistant, but allow seperate decisions on whether to export a value or type constructor if they have the same name. 
     14 
     15 
     16see section 9 of the following paper for more details:  
     17 
     18reference: 
    119 
    220 * http://www.cse.ogi.edu/~diatchki/hsmod/