SOURCE_FILE@[0; 112)
  FN_DEF@[0; 33)
    FN_KW@[0; 2)
    WHITESPACE@[2; 3)
    NAME@[3; 4)
      IDENT@[3; 4) "a"
    PARAM_LIST@[4; 6)
      L_PAREN@[4; 5)
      R_PAREN@[5; 6)
    WHITESPACE@[6; 7)
    BLOCK@[7; 33)
      L_CURLY@[7; 8)
      WHITESPACE@[8; 9)
      EXPR_STMT@[9; 15)
        ARRAY_EXPR@[9; 15)
          L_BRACK@[9; 10)
          LITERAL@[10; 11)
            INT_NUMBER@[10; 11) "1"
          COMMA@[11; 12)
          WHITESPACE@[12; 13)
          LITERAL@[13; 14)
            INT_NUMBER@[13; 14) "2"
          COMMA@[14; 15)
          err: `expected expression`
          err: `expected R_BRACK`
          err: `expected SEMI`
      WHITESPACE@[15; 16)
      err: `expected expression`
      EXPR_STMT@[16; 17)
        ERROR@[16; 17)
          AT@[16; 17)
          err: `expected SEMI`
          err: `expected expression`
      EXPR_STMT@[17; 18)
        ERROR@[17; 18)
          COMMA@[17; 18)
          err: `expected SEMI`
      WHITESPACE@[18; 19)
      STRUCT_DEF@[19; 26)
        STRUCT_KW@[19; 25)
        err: `expected a name`
        ERROR@[25; 26)
          COMMA@[25; 26)
          err: `expected `;`, `{`, or `(``
      WHITESPACE@[26; 27)
      LET_STMT@[27; 31)
        LET_KW@[27; 30)
        err: `expected pattern`
        ERROR@[30; 31)
          R_BRACK@[30; 31)
          err: `expected SEMI`
      WHITESPACE@[31; 32)
      R_CURLY@[32; 33)
  WHITESPACE@[33; 34)
  FN_DEF@[34; 68)
    FN_KW@[34; 36)
    WHITESPACE@[36; 37)
    NAME@[37; 38)
      IDENT@[37; 38) "b"
    PARAM_LIST@[38; 40)
      L_PAREN@[38; 39)
      R_PAREN@[39; 40)
    WHITESPACE@[40; 41)
    BLOCK@[41; 68)
      L_CURLY@[41; 42)
      WHITESPACE@[42; 43)
      EXPR_STMT@[43; 52)
        CALL_EXPR@[43; 52)
          PATH_EXPR@[43; 46)
            PATH@[43; 46)
              PATH_SEGMENT@[43; 46)
                NAME_REF@[43; 46)
                  IDENT@[43; 46) "foo"
          ARG_LIST@[46; 52)
            L_PAREN@[46; 47)
            LITERAL@[47; 48)
              INT_NUMBER@[47; 48) "1"
            COMMA@[48; 49)
            WHITESPACE@[49; 50)
            LITERAL@[50; 51)
              INT_NUMBER@[50; 51) "2"
            COMMA@[51; 52)
            err: `expected expression`
            err: `expected SEMI`
      WHITESPACE@[52; 53)
      err: `expected expression`
      EXPR_STMT@[53; 54)
        ERROR@[53; 54)
          AT@[53; 54)
          err: `expected SEMI`
          err: `expected expression`
      EXPR_STMT@[54; 55)
        ERROR@[54; 55)
          COMMA@[54; 55)
          err: `expected SEMI`
      WHITESPACE@[55; 56)
      IMPL_BLOCK@[56; 60)
        IMPL_KW@[56; 60)
        err: `expected type`
        err: `expected `{``
        err: `expected expression`
      EXPR_STMT@[60; 61)
        ERROR@[60; 61)
          COMMA@[60; 61)
          err: `expected SEMI`
      WHITESPACE@[61; 62)
      LET_STMT@[62; 65)
        LET_KW@[62; 65)
        err: `expected pattern`
        err: `expected SEMI`
        err: `expected expression`
      ERROR@[65; 66)
        R_PAREN@[65; 66)
      WHITESPACE@[66; 67)
      R_CURLY@[67; 68)
  WHITESPACE@[68; 69)
  FN_DEF@[69; 111)
    FN_KW@[69; 71)
    WHITESPACE@[71; 72)
    NAME@[72; 73)
      IDENT@[72; 73) "c"
    PARAM_LIST@[73; 75)
      L_PAREN@[73; 74)
      R_PAREN@[74; 75)
    WHITESPACE@[75; 76)
    BLOCK@[76; 111)
      L_CURLY@[76; 77)
      WHITESPACE@[77; 78)
      EXPR_STMT@[78; 91)
        METHOD_CALL_EXPR@[78; 91)
          PATH_EXPR@[78; 81)
            PATH@[78; 81)
              PATH_SEGMENT@[78; 81)
                NAME_REF@[78; 81)
                  IDENT@[78; 81) "foo"
          DOT@[81; 82)
          NAME_REF@[82; 85)
            IDENT@[82; 85) "bar"
          ARG_LIST@[85; 91)
            L_PAREN@[85; 86)
            LITERAL@[86; 87)
              INT_NUMBER@[86; 87) "1"
            COMMA@[87; 88)
            WHITESPACE@[88; 89)
            LITERAL@[89; 90)
              INT_NUMBER@[89; 90) "2"
            COMMA@[90; 91)
            err: `expected expression`
            err: `expected SEMI`
      WHITESPACE@[91; 92)
      err: `expected expression`
      EXPR_STMT@[92; 93)
        ERROR@[92; 93)
          AT@[92; 93)
          err: `expected SEMI`
          err: `expected expression`
      EXPR_STMT@[93; 94)
        ERROR@[93; 94)
          COMMA@[93; 94)
          err: `expected SEMI`
      WHITESPACE@[94; 95)
      err: `expected expression`
      EXPR_STMT@[95; 96)
        ERROR@[95; 96)
          R_BRACK@[95; 96)
          err: `expected SEMI`
          err: `expected expression`
      EXPR_STMT@[96; 97)
        ERROR@[96; 97)
          COMMA@[96; 97)
          err: `expected SEMI`
      WHITESPACE@[97; 98)
      TRAIT_DEF@[98; 104)
        TRAIT_KW@[98; 103)
        err: `expected a name`
        ERROR@[103; 104)
          COMMA@[103; 104)
          err: `expected `{``
      WHITESPACE@[104; 105)
      LET_STMT@[105; 108)
        LET_KW@[105; 108)
        err: `expected pattern`
        err: `expected SEMI`
        err: `expected expression`
      ERROR@[108; 109)
        R_PAREN@[108; 109)
      WHITESPACE@[109; 110)
      R_CURLY@[110; 111)
  WHITESPACE@[111; 112)
