Readline read_history and write_history addition
Ian Lynagh
igloo at earth.li
Tue Jan 22 19:51:11 EST 2008
On Wed, Jan 23, 2008 at 01:49:34AM +0200, Yitzchak Gale wrote:
> Ian Lynagh wrote:
> > People using MonadIO can convert this into the variant that doesn't
> > throw an exception by replacing
> > readlineFunction args
> > with something like
> > (try $ readlineFunction args) >> return ()
>
> That's in the IO monad, so not always available.
Everywhere you can write
readlineFunction args
you can write
(try $ readlineFunction args) >> return ()
The only way you can have problems is if there is a library (that you
don't control), which exports a (MonadIO m => m a) that internally calls
readlineFunction args
and doesn't catch exceptions. Personally I'd say that that is a bug
in that other library, and it ought to be catching the exception and
either ignoring it, returning some sort of sum type, or also
constraining m to be in some sort of MonadError monad.
> If we start throwing IO exceptions for common and minor
> occurrences like no readline history available
Pretty much any actual IO you do has this problem, e.g. readFile on
a non-existent file.
Thanks
Ian
More information about the Libraries
mailing list