
On 2008-08-27, Yitzchak Gale
In my opinion, that is a bad policy. It is fine as a simple default for small projects, even though it's a bit ugly and ad hoc. (For example - what does this mean on platforms whose filesystem is not hierarchical?)
The language standards are always going to require something from the platforms we develop on (which is different N.B. than the ones we deploy to). I have no trouble counting real filesystems among them.
But for large and complex projects, this policy really complicates the task of the project manager who wants to be able to present various views of the source to teams working on different subprojects, while juggling the version control in an intelligent way. Directory tree structure is sometimes the perfect tool for that, but Haskell has stolen it away.
This is a valid point, but I personally get extremely frustrated at remapping in source code repositories, precisely because allowing different views means people can say "builds for me" without any guarantee of anything useful for anyone else.
It would be nice if compilers would offer, as an optional alternative, a system of locating modules based on manifest files. That would then allow multiple modules per source file.
And simplify supporting recursive modules... -- Aaron Denney -><-