Sounds like you need error handlers in your presentation-type parsers. Or if you are using them, maybe you aren't doing it right? A simple example might help. I do some fairly fancy parsers involving error handling, and it works just fine regardless of whether the input stream is interactive or a string-input-stream.