[Haskell-cafe] FilePath handling [Was: Writing binary files?]

Henning Thielemann iakd0 at clusterf.urz.uni-halle.de
Thu Sep 16 03:19:39 EDT 2004

On Wed, 15 Sep 2004, Glynn Clements wrote:

> Henning Thielemann wrote:
> > I even plead for an abstract data type FilePath which supports operations
> > like 'enter a directory', 'go one level higher' and so on.
> Are you referring to "pure" operations on the FilePath, e.g. appending
> and removing entries?

Yep, thus the signature should be like

parentDirectory :: FileName -> FilePath -> FilePath

> That's reasonable enough. But it needs to be
> borne in mind that there's a difference between:
> 	setCurrentDirectory ".."
> and:
> 	dir <- getCurrentDirectory
> 	setCurrentDirectory $ parentDirectory dir
> [where parentDirectory is a pure FilePath -> FilePath function.]
> if the last component in the path is a symlink.
> If you want to make FilePath an instance of Eq, the situation gets
> much more complicated.

I agree, though these are not problems introduced by the abstraction of
FilePath but they already exist for FilePath = String.

More information about the Haskell-Cafe mailing list