My primary concerns are (in order of priority - and I only speak for myself)
(a) consistency across platforms
(b) minimize (unrequired) performance overhead
I would prefer an api which is consistent for both win32, posix or other
os which only did as much as what the user (us) wanted
for example ...
module System.Directory.ByteString ...
FilePath = ByteString
getDirectoryContents :: FilePath -> IO [FilePath]
which is the same for both win32 and posix and represents raw
uninterpreted bytestrings in whatever encoding/(non-encoding) the os
provides....implicitly it is for the user to know and understand what
their getting (utf-16 in the case of windows, bytes in case of posix
platforms)
then this api can be re-exported with the decoding/encoding by
System.Directory/System.IO
which would export FilePath=String
ie a two level api...
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users