ROOT@[0; 31) ERROR@[0; 1) R_CURLY@[0; 1) err: `unmatched `}`` WHITESPACE@[1; 3) STRUCT_DEF@[3; 12) STRUCT_KW@[3; 9) WHITESPACE@[9; 10) NAME@[10; 11) IDENT@[10; 11) "S" SEMI@[11; 12) WHITESPACE@[12; 14) err: `unmatched `}`` ERROR@[14; 15) R_CURLY@[14; 15) WHITESPACE@[15; 17) FN_DEF@[17; 27) FN_KW@[17; 19) WHITESPACE@[19; 20) NAME@[20; 23) IDENT@[20; 23) "foo" PARAM_LIST@[23; 25) L_PAREN@[23; 24) R_PAREN@[24; 25) BLOCK@[25; 27) L_CURLY@[25; 26) R_CURLY@[26; 27) WHITESPACE@[27; 29) err: `unmatched `}`` ERROR@[29; 30) R_CURLY@[29; 30) WHITESPACE@[30; 31)