@alikh31 

To clarify: In Snow Crash the difference between `Parse...` and `Check...` function is in that parse-family processes the relevant block (or a sequence of blocks) and moves the "parse head" forward thus returning both new head position and result. Check-family of functions only can process / check a block (or a sequence) but does not advance the "parse head" thus it only needs the `struct Result` to report its findings...