[Haskell-cafe] RE: ANN: System.FilePath 0.9

Udo Stenzel u.stenzel at web.de
Wed Jul 26 17:23:39 EDT 2006


Duncan Coutts wrote:
> In practise in the short term, the choice is between each application
> fumbling with strings in different incorrect ways or a library that
> fumbles with strings in a rather more considered and portable way.

Honestly I don't see a reason to bother with (++) and takeWhile and
isSuffixOf when there is a way to view paths as... uhm... well, paths
instead of strings.  Of course, this might just be a personal
preference.

 
> Try proposing something concrete

I might.  For the time being I didn't think about an actual proposal.
It's just that seeing the nitpicking about corner cases of an
approximate solution tripped me off somewhat.

> > - declare that Unix uses Unicode too, take the appropriate conversion
> >   from the locale
> 
> Sadly this does not work.

Strictly speaking it wouldn't.  If I'm in a ISO-8859-15 locale and mount
a KOI-8R file system, I will get garbage instead of cyrillic letters.
Can't be fixed, no point in fretting about it.

All other problems basically vanish as soon as (unicodeToLocale .
localeToUnicode == id), and I maintain that this can be achieved by
reserving 256 code points in the vendor zone for use as escape
characters.

> > Heck, NO library fumbles with strings,
> > neither parsers nor pretty printers nor Network... why should a FilePath
> > be different?
> 
> For compatibility with the Haskell98 IO library.

Aww, come on, module IO isn't going to vanish soon.  Instead a new one
could appear:

module System.IO.Sanitized where

import qualified System.IO as IO
import Control.Monad

openFile fp mode = liftIO $ IO.openFile (fpToString fp) mode

You get the idea...

> There's also the issue
> here that adding in lots of conversions ADT <-> String means that people
> will not bother to use it and will continue to do things like:
> readFile (path ++ "/" ++ file)

import System.IO.Sanitized

... readFile (path +/+ file) ...

I, for one, actually *want* to bother with an ADT.


Udo.
-- 
Did you know that if you took all the economists in the world and lined
them up end to end, they'd still point in the wrong direction?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://www.haskell.org//pipermail/haskell-cafe/attachments/20060726/28a08b8e/attachment.bin


More information about the Haskell-Cafe mailing list