
Neil Mitchell wrote:
ANNOUNCEMENT:
I am hereby announcing System.FilePath 0.10, which hopefully is pretty close to final now. This library manipulates FilePath's correctly on both Posix and Windows.
http://www-users.cs.york.ac.uk/~ndm/projects/libraries.php#filepath
(Includes a darcs repo, a .tar.gz, haddock documentation etc)
In this version I have made reasonably large changes:
* Lots of functions gone (temporary file handling, canonicalization, drive manipulation, directory creation, directory enumeration) - pretty much down to only pure (non-IO methods) left.
* 3 new methods (asFile, isFile, asDirectory - look up the docs for their meanings, but they are pretty small)
* Renamed functions to follow the scheme replace/take/drop instead of set/get/drop - as suggested by Simon Marlow (since set/get implies state operations in Haskell)
Looks good! I have a few small further suggestions: - remove addFileName: it does the same thing as combine, or rather the difference is subtle and not mentioned in the docs. It's subsumed by combine, anyway. - remove isDirectory. I think its presence is confusing, e.g forall x. isDirectory (takeDirectory x) == False! Also it's not really correct; "/bin/" means something subtly different to "/bin" on Unix systems. Similarly isFile, asFile, asDirectory could be removed, I think. - Use the terminology "search path" consistently for anything to do with $PATH. i.e. fileSeparator => searchPathSeparator, isFileSeparator => isSearchPathSeparator, splitFiles => splitSearchPath also, move fileSeparator, isFileSeparator into the $PATH section in the docs (or change "basic functions" to "separator predicates"). - remove splitPath: splitDirectories is enough. I'd rename it to splitPathComponents, though. - shortPath => relativeToCurrentDirectory shortPathWith => makeRelativePath Cheers, Simon