SOURCE_FILE@0..96
  TRAIT_DEF@0..36
    TRAIT_KW@0..5 "trait"
    WHITESPACE@5..6 " "
    NAME@6..14
      IDENT@6..14 "Runnable"
    WHITESPACE@14..15 " "
    ITEM_LIST@15..36
      L_CURLY@15..16 "{"
      WHITESPACE@16..21 "\n    "
      FN_DEF@21..34
        FN_KW@21..23 "fn"
        WHITESPACE@23..24 " "
        NAME@24..31
          IDENT@24..31 "handler"
        PARAM_LIST@31..33
          L_PAREN@31..32 "("
          R_PAREN@32..33 ")"
        SEMICOLON@33..34 ";"
      WHITESPACE@34..35 "\n"
      R_CURLY@35..36 "}"
  WHITESPACE@36..38 "\n\n"
  TRAIT_DEF@38..95
    TRAIT_KW@38..43 "trait"
    WHITESPACE@43..44 " "
    NAME@44..57
      IDENT@44..57 "TraitWithExpr"
    WHITESPACE@57..58 " "
    ITEM_LIST@58..95
      L_CURLY@58..59 "{"
      WHITESPACE@59..64 "\n    "
      FN_DEF@64..93
        FN_KW@64..66 "fn"
        WHITESPACE@66..67 " "
        NAME@67..79
          IDENT@67..79 "fn_with_expr"
        PARAM_LIST@79..92
          L_PAREN@79..80 "("
          PARAM@80..91
            BIND_PAT@80..81
              NAME@80..81
                IDENT@80..81 "x"
            COLON@81..82 ":"
            WHITESPACE@82..83 " "
            ARRAY_TYPE@83..91
              L_BRACK@83..84 "["
              PATH_TYPE@84..87
                PATH@84..87
                  PATH_SEGMENT@84..87
                    NAME_REF@84..87
                      IDENT@84..87 "i32"
              SEMICOLON@87..88 ";"
              WHITESPACE@88..89 " "
              LITERAL@89..90
                INT_NUMBER@89..90 "1"
              R_BRACK@90..91 "]"
          R_PAREN@91..92 ")"
        SEMICOLON@92..93 ";"
      WHITESPACE@93..94 "\n"
      R_CURLY@94..95 "}"
  WHITESPACE@95..96 "\n"