ROOT@[0; 164)
  TRAIT_DEF@[0; 66)
    VISIBILITY@[0; 3)
      PUB_KW@[0; 3)
    WHITESPACE@[3; 4)
    TRAIT_KW@[4; 9)
    WHITESPACE@[9; 10)
    NAME@[10; 22)
      IDENT@[10; 22) "WriteMessage"
    WHITESPACE@[22; 23)
    ITEM_LIST@[23; 66)
      L_CURLY@[23; 24)
      WHITESPACE@[24; 29)
      FN_DEF@[29; 64)
        FN_KW@[29; 31)
        WHITESPACE@[31; 32)
        NAME@[32; 45)
          IDENT@[32; 45) "write_message"
        PARAM_LIST@[45; 63)
          L_PAREN@[45; 46)
          PARAM@[46; 62)
            REFERENCE_TYPE@[46; 62)
              AMP@[46; 47)
              PATH_TYPE@[47; 62)
                PATH@[47; 62)
                  PATH_SEGMENT@[47; 62)
                    NAME_REF@[47; 62)
                      IDENT@[47; 62) "FrontendMessage"
          R_PAREN@[62; 63)
        SEMI@[63; 64)
      WHITESPACE@[64; 65)
      R_CURLY@[65; 66)
  WHITESPACE@[66; 68)
  TRAIT_DEF@[68; 104)
    TRAIT_KW@[68; 73)
    WHITESPACE@[73; 74)
    NAME@[74; 82)
      IDENT@[74; 82) "Runnable"
    WHITESPACE@[82; 83)
    ITEM_LIST@[83; 104)
      L_CURLY@[83; 84)
      WHITESPACE@[84; 89)
      FN_DEF@[89; 102)
        FN_KW@[89; 91)
        WHITESPACE@[91; 92)
        NAME@[92; 99)
          IDENT@[92; 99) "handler"
        PARAM_LIST@[99; 101)
          L_PAREN@[99; 100)
          R_PAREN@[100; 101)
        SEMI@[101; 102)
      WHITESPACE@[102; 103)
      R_CURLY@[103; 104)
  WHITESPACE@[104; 106)
  TRAIT_DEF@[106; 163)
    TRAIT_KW@[106; 111)
    WHITESPACE@[111; 112)
    NAME@[112; 125)
      IDENT@[112; 125) "TraitWithExpr"
    WHITESPACE@[125; 126)
    ITEM_LIST@[126; 163)
      L_CURLY@[126; 127)
      WHITESPACE@[127; 132)
      FN_DEF@[132; 161)
        FN_KW@[132; 134)
        WHITESPACE@[134; 135)
        NAME@[135; 147)
          IDENT@[135; 147) "fn_with_expr"
        PARAM_LIST@[147; 160)
          L_PAREN@[147; 148)
          PARAM@[148; 159)
            BIND_PAT@[148; 149)
              NAME@[148; 149)
                IDENT@[148; 149) "x"
            COLON@[149; 150)
            WHITESPACE@[150; 151)
            ARRAY_TYPE@[151; 159)
              L_BRACK@[151; 152)
              PATH_TYPE@[152; 155)
                PATH@[152; 155)
                  PATH_SEGMENT@[152; 155)
                    NAME_REF@[152; 155)
                      IDENT@[152; 155) "i32"
              SEMI@[155; 156)
              WHITESPACE@[156; 157)
              LITERAL@[157; 158)
                INT_NUMBER@[157; 158) "1"
              R_BRACK@[158; 159)
          R_PAREN@[159; 160)
        SEMI@[160; 161)
      WHITESPACE@[161; 162)
      R_CURLY@[162; 163)
  WHITESPACE@[163; 164)