SOURCE_FILE@[0; 24)
  FN_DEF@[0; 23)
    FN_KW@[0; 2)
    WHITESPACE@[2; 3)
    NAME@[3; 6)
      IDENT@[3; 6) "foo"
    PARAM_LIST@[6; 12)
      L_PAREN@[6; 7)
      PARAM@[7; 11)
        BIND_PAT@[7; 8)
          NAME@[7; 8)
            IDENT@[7; 8) "a"
        COLON@[8; 9)
        WHITESPACE@[9; 10)
        PATH_TYPE@[10; 11)
          PATH@[10; 11)
            PATH_SEGMENT@[10; 11)
              NAME_REF@[10; 11)
                IDENT@[10; 11) "A"
      R_PAREN@[11; 12)
    WHITESPACE@[12; 13)
    BLOCK@[13; 23)
      L_CURLY@[13; 14)
      WHITESPACE@[14; 19)
      FIELD_EXPR@[19; 21)
        PATH_EXPR@[19; 20)
          PATH@[19; 20)
            PATH_SEGMENT@[19; 20)
              NAME_REF@[19; 20)
                IDENT@[19; 20) "a"
        DOT@[20; 21)
        err: `expected field name or number`
      WHITESPACE@[21; 22)
      R_CURLY@[22; 23)
  WHITESPACE@[23; 24)
