This note was made while assisting a student with parse_json(…) in instructor office hours on 11/7/2022. It is being shared here for fairness. When parse_element(…) is called from parse_json(…), there are three possibilities: parse_element returns true (1) ... with NO trailing non-whitespace characters └▶ parse_json returns (ParseResult) { .is_success = true, … } (2) ... WITH trailing non-whitespace characters └▶ parse_json returns (ParseResult) { .is_success = false, … } (3) parse_element returns false ├▶ don't try to access .type or .as_▒▒▒ fields since they are uninitialized └▶ parse_json returns (ParseResult) { .is_success = false, … }