implementation of file-related modules

ketil+haskell at ketil+haskell at
Thu Oct 9 11:42:07 EDT 2003

Isaac Jones <ijones at> writes:

> * Some languages have a means of building paths in a portable way.  It
>   would be nice if we had access a file separator (like "/" in unix
>   and "\" in windows).

If this is really necessary, I'd prefer it if it was taken care of
"under the hood".  FilePath could probably be a more complex data type
(instead of the current "String"), perhaps dealt with as a list/tuple
of components.

>     "path.separator" Path separator (for example, ":")

I assume this is used to separate different paths when packing them in
a string.  This seems very application dependent, I'm not sure I see
the utility of it.

>     "file.separator" File separator (for example, "/")

Necessary if you need to construct file paths as strings.  Let's try
to avoid a tangle of "...++System.FilePath.getFileSeparator++..."
constructs in code, though.

I think we either should standardize the string format, or design a
new data type with a simple interface to access it.  How are the
languages with more general facilities doing this?  How often is it

>     "user.home"      User home directory
>     ""	     User account name

Nice to have, I think.  Simple to get from the environment, but having
standard wrappers would probably be a good idea.

Make a module, (System.Info?) with the appropriate functions?

> * Another item that would be useful in the System.Directory class
>   would be some kind of config file path.

This would be application -- and installation -- dependent, I'm sure? 

>   On Debian, that would be "/etc", on some systems, it might tend to
>   be more often "/usr/local/etc".

I mean, if I compile an application myself, I use ./configure
--prefix=/usr/local, and want it to keep its system-wide config in
/usr/local/etc.  Installing from a .deb would put config in /etc,
installing in my home directory would do something else again.

>   User config files tend to be in ~/ and start with a dot whereas
>   system config files end up in /etc, and don't start with a dot.)

In sum, this isn't something to standardize in the language, let the
application writers decide for themselves.

If I haven't seen further, it is by standing in the footprints of giants

More information about the Libraries mailing list