ROOT@[0; 139) FN_DEF@[0; 138) FN_KW@[0; 2) WHITESPACE@[2; 3) NAME@[3; 6) IDENT@[3; 6) "foo" PARAM_LIST@[6; 8) L_PAREN@[6; 7) R_PAREN@[7; 8) WHITESPACE@[8; 9) BLOCK@[9; 138) L_CURLY@[9; 10) WHITESPACE@[10; 15) LET_STMT@[15; 24) LET_KW@[15; 18) WHITESPACE@[18; 19) BIND_PAT@[19; 22) NAME@[19; 22) IDENT@[19; 22) "foo" WHITESPACE@[22; 23) EQ@[23; 24) err: `expected expression` err: `expected SEMI` WHITESPACE@[24; 29) LET_STMT@[29; 41) LET_KW@[29; 32) WHITESPACE@[32; 33) BIND_PAT@[33; 36) NAME@[33; 36) IDENT@[33; 36) "bar" WHITESPACE@[36; 37) EQ@[37; 38) WHITESPACE@[38; 39) LITERAL@[39; 40) INT_NUMBER@[39; 40) "1" SEMI@[40; 41) WHITESPACE@[41; 46) LET_STMT@[46; 49) LET_KW@[46; 49) err: `expected pattern` err: `expected SEMI` WHITESPACE@[49; 54) LET_STMT@[54; 67) LET_KW@[54; 57) WHITESPACE@[57; 58) BIND_PAT@[58; 61) NAME@[58; 61) IDENT@[58; 61) "baz" WHITESPACE@[61; 62) EQ@[62; 63) WHITESPACE@[63; 64) LITERAL@[64; 66) INT_NUMBER@[64; 66) "92" SEMI@[66; 67) WHITESPACE@[67; 72) LET_STMT@[72; 75) LET_KW@[72; 75) err: `expected pattern` err: `expected SEMI` WHITESPACE@[75; 80) EXPR_STMT@[80; 90) IF_EXPR@[80; 90) IF_KW@[80; 82) WHITESPACE@[82; 83) CONDITION@[83; 87) LITERAL@[83; 87) TRUE_KW@[83; 87) WHITESPACE@[87; 88) BLOCK@[88; 90) L_CURLY@[88; 89) R_CURLY@[89; 90) WHITESPACE@[90; 95) LET_STMT@[95; 98) LET_KW@[95; 98) err: `expected pattern` err: `expected SEMI` WHITESPACE@[98; 103) EXPR_STMT@[103; 116) WHILE_EXPR@[103; 116) WHILE_KW@[103; 108) WHITESPACE@[108; 109) CONDITION@[109; 113) LITERAL@[109; 113) TRUE_KW@[109; 113) WHITESPACE@[113; 114) BLOCK@[114; 116) L_CURLY@[114; 115) R_CURLY@[115; 116) WHITESPACE@[116; 121) LET_STMT@[121; 124) LET_KW@[121; 124) err: `expected pattern` err: `expected SEMI` WHITESPACE@[124; 129) LOOP_EXPR@[129; 136) LOOP_KW@[129; 133) WHITESPACE@[133; 134) BLOCK@[134; 136) L_CURLY@[134; 135) R_CURLY@[135; 136) WHITESPACE@[136; 137) R_CURLY@[137; 138) WHITESPACE@[138; 139)