write a safety wrapper around readline
It would be nice to have a wrapper around the low-level readline functions, providing
the same functions but with types in
MonadIO m => MonadReadline m. The
IO monad wouldn't be in this class, but
ReadlineT would be, and a
withReadline function would handle calling
initialize etc for you as appropriate.