
Bulat Ziganshin wrote:
Hello Jules,
Wednesday, May 14, 2008, 5:58:46 PM, you wrote:
Surely you can put the nicest new names in another module
System.Process.RunCommand
(or whatever)
programs which use the old versions will still work. Programs which want the nicely named new versions can import from the new module.
yes, it will work, but may become source of confusion: it will be impossible to copy-paste code between modules importing old and new functions and it will be impossible to understand behavior of code snippet without looking into imports
True enough. And this is already true. Consider the Traversable/Foldable functions which 'replace' the Data.List / Control.Monad versions. I feel haskell is slightly weak at this kind of book-keeping actually. It's annoying that having decided to prefer the 'new' mapM_, and hiding the old from Control.Monad, you have to also hide it from the other places which re-export it. I don't have a concrete suggestion for how to improve this :-( But the problem will surely come up again and again as the libraries get bigger and more things get either deprecated or generalised. Jules