
Malcolm Wallace:
Christian Maeder
wrote: 1. a _new_ readline package that only contains the interface that can be implemented using libeditline _or_ libreadline. If this package is call "readline" (with a new version number) most libraries i.e. like Shellac would not need modifications.
I totally agree. Backwards compatibility for all the programs out there that already use the readline package (but really don't care whether it is actually readline or editline) is vital. I would hate to see all client code forced to use CPP macros and cabal magic to select the right package and module imports. We can avoid such a retrograde step by explicitly making 'readline' the backend-agnostic package, which re-exports functionality from either the real readline or editline, depending on which is available.
I don't think we should touch the existing readline package. It's a
binding to readline and whether everybody likes its license or not
doesn't matter. Some people just want to use readline, and they
should be able to continue to do this by importing the library called
System.Console.Readline.
In addition System.Console.Editline should be a binding to editline.
(Again if somebody want editline and nothing else, that's what they
import.)
Finally, we'd like a module (let's call it EditReadline) whose
interface coincides with the readline emulation layer of editline (ie,