"Simon Peyton-Jones" <[EMAIL PROTECTED]> wrote: > | I don't seriously propose for haskell-prime that signatures should > | be required on exports. Just permitting them would be a large and > | useful step up already. > > If this is to be a serious proposal, someone had better think what to > do about classes, data types, instances and so on.
As far as I can see, there is very little to change. Here is a concrete proposal. A qvar in an export list may optionally have a type signature. A qtycon or qtycls in an export list may optionally have an annotation saying whether it is a type, newtype, data, or class. Instances cannot be mentioned in export lists, and this does not change. export -> qvar | qtycon [ (..) | ( cname_1, ... , cname_n ) ] (n>=0) | qtycls [ (..) | ( var_1, ... , var_n ) ] (n>=0) | module modid becomes export -> qvar [ :: type ] | [type] qtycon | [newtype] qtycon [ (..) | ( cname_1, ... , cname_n ) (n>=0) | [data] qtycon [ (..) | ( cname_1, ... , cname_n ) (n>=0) | [class] qtycls [ (..) | ( var_1, ... , var_n ) (n>=0) | module modid As far as import entity lists are concerned, we permit an optional annotation for type synonyms, newtypes, datatypes, and classes: import -> var | tycon [ (..) | ( cname_1, ... , cname_n ) ] (n>=0) | tycls [ (..) | ( var_1, ... , var_n ) ] (n>=0) becomes import -> var | [type] tycon | [newtype] tycon [ (..) | ( cname_1, ... , cname_n ) ] (n>=0) | [data] tycon [ (..) | ( cname_1, ... , cname_n ) ] (n>=0) | [class] tycls [ (..) | ( var_1, ... , var_n ) ] (n>=0) Anyone see any difficulties? Regards, Malcolm _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://haskell.org/mailman/listinfo/haskell-prime