There should be an explicit push-back-onto-input mechanism paralleling h_read_bits
Some parsers, e.g. h_whitespace()
, rely on being able to undo an overread by writing the saved state of the input stream back over the one after the read. This isn't going to work in a world where inputs are not necessarily buffers entirely in memory.