base libraries
Bulat Ziganshin
bulat.ziganshin at gmail.com
Fri Nov 24 05:41:37 EST 2006
Hello Neil,
Thursday, November 23, 2006, 7:57:53 PM, you wrote:
>> and, while you can't imagine progress of FilePath module, i can do.
>> what you propose to do in this case - have two filepath modules, one
>> in the base and one in other place? or make incompatible changes in Base?
>> to be concrete, i want to make these functions polymorphic and be able
>> to work on various string-alikes
> type FilePath = String
> I would hope that when/if we ever replace FilePath with a
> string-a-like or ADT, we might want to rename the type at the same
> time.
what i mean here: now we have, for example
splitToBaseExt :: FilePath -> (FilePath,FilePath)
the same function, in polymorphic way:
splitToBaseExt :: FilePathClass fp => fp -> (fp,fp)
and
instance FilePathClass FilePath
instance FilePathClass UTF8ByteString
instance FilePathClass UTF16ByteString
this change in interface would be indistinguishable for 99% of us.
for the rest, old version of library should still be available. and
only way to do it - versioning, that is impossible with Base
>> experience shows that even such well-established modules as Data.List
>> are sometimes changed. so, while your work is great, this don't mean
>> that it will be frozen and can't be replaced with something even
>> better
> It can, but I suspect the better thing wouldn't manipulate FilePath's,
> but general URL's or something with the file:// protocol as just a
> special case.
> We will never achieve perfection, but at some point we have to commit
> to providing something with a fixed API that people can use.
YES! it's my whole argument - with Base, you can't provide fixed API.
the only way to do it is to request library with specific version
number that is installed via Cabal
> Having
> things in a set of libraries which are tightly controlled is a good
> idea - currently as my libraries stand, I can change the functionality
> to reverse all the strings on the way out as I choose - hopefully if I
> did that to a base library someone would stop me.
sorry, i don't known that you are agent of KGB :)
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Libraries
mailing list