Rework so that it may serve to define full_read, too.