
For something like path separators, it seems fine to have Directory.Windows, Directory.Unix, and Directory.Mac, then have Directory.Native bind at compile time.
Note that it is (occasionally) useful to use Directory.Windows on a program running on a Unix box. One example would be a CVS-like application which has to translate filenames from one format to another.
So perhaps we could have
Platform.{Debian,FreeBSD,MacOSX,Windows98,Windows2000}. {configDirectory,fileSeparator,etc}
I find it harder to think why I would want to know where Windows machines store their configuration files. So I think there is value in having multiple versions of file-related modules available in each system but I'm much less convinced that having multiple configuration file locations available is useful. -- Alastair