ANNOUNCE: GHC version 6.10.1 - EditLine / terminal incompatibility?

Judah Jacobson judah.jacobson at gmail.com
Mon Nov 10 13:39:42 EST 2008


On Sun, Nov 9, 2008 at 11:03 AM, Don Stewart <dons at galois.com> wrote:
> judah.jacobson:
>> >
>> > Note that haskeline has a lot of dependencies and requires
>> > TemplateHaskell and many other language extensions.
>>
>> I'm also somewhat wary of switching to haskeline in ghc-6.10.  I think
>> these issues could be resolved in time for 6.12, though:
>
> haskeline needs /way/ too many extensions for a simple console reader...

Well, even though the external API of a line reader may look simple,
under the hood there can be a lot going on, both in the user interface
(e.g. user preferences, multiple key bindings, history recall/search,
undo/redo, tab completion) and backend (e.g. redraw efficiently,
cross-platform compatibility).

Using a stack of monad transformers to encapsulate the state and
settings helped make the code much more modular, understandable and
concise, but also required several type extensions to work the way I
wanted (MultiParamTypeClasses, OverlappingInstances, FlexibleContexts,
etc.).  I felt the tradeoff was worth it when originally writing the
code, but patches or suggestions are, of course, welcome :-)

(Incidentally, the .cabal file in haskeline-3.2 erroneously lists
GADTs and FunDeps which are not actually required; those extensions
will be removed for the next release.)

Best,
-Judah


More information about the Glasgow-haskell-users mailing list