i should elaborate. the case were any error or interrupt looks like Beof seems like the right thing for any program that looks like a filter. this is the majority of programs. and this is the current behavior. i wouldn't want to make the simple case tricky. but the hard case should also not be impossible or impossibly tricky, either.
the suggestion of having Biobuf.^(read|write) skirts this issue buy allowing a sophisticated program to interrupt itself and recover gracefully, without letting Bio in on the joke. - erik