
The suggested changes sound hard to understand and to implement consistently in all compilers. I lean towards leaving the spec as it is.
Hmm, I'm not sure why you say these changes are hard to understand. Which part(s) in particular do you find difficult? Hugs already implements the first suggestion.
IIRC, the current Hugs semantics is a complex balancing act intended to achieve backward compatability and implement module paths at the same time. I'd prefer to see everyone switch over to the new way so that we can drop old features.
Johan and I discussed the current search semantics when it was implemented in Hugs, so that we could make GHC(i) and Hugs agree. I believe they currently agree on all but the point I made in my first suggestion. There were two features in Hugs that could be considered "backwards compatibility": Hugs allowed a module M to be placed in the file M (no extension), and Hugs allowed an import declaration to give a filename rather than a module name. I thought both these features were gone, but I just checked and the first seems to be still present in the Hugs Nov 2002 release. Cheers, Simon