On Wednesday 22 February 2006 15:53, Malcolm Wallace wrote: > "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? No, but one question: If the type signature is given in the export lists, is it then necessary (or even allowed) later on? I would vote for _not_ having it twice in the file.
Cheers,
Georg
pgpCsWo4zYkq0.pgp
Description: PGP signature
_______________________________________________ Haskell-prime mailing list [email protected] http://haskell.org/mailman/listinfo/haskell-prime
