Documentation
SOURCE_FILE@0..50
  FN@0..17
    FN_KW@0..2 "fn"
    WHITESPACE@2..3 " "
    NAME@3..6
      IDENT@3..6 "foo"
    PARAM_LIST@6..14
      L_PAREN@6..7 "("
      PARAM@7..13
        IDENT_PAT@7..8
          NAME@7..8
            IDENT@7..8 "x"
        COLON@8..9 ":"
        WHITESPACE@9..10 " "
        PATH_TYPE@10..13
          PATH@10..13
            PATH_SEGMENT@10..13
              NAME_REF@10..13
                IDENT@10..13 "i32"
      R_PAREN@13..14 ")"
    WHITESPACE@14..15 " "
    BLOCK_EXPR@15..17
      STMT_LIST@15..17
        L_CURLY@15..16 "{"
        R_CURLY@16..17 "}"
  WHITESPACE@17..19 "\n\n"
  FN@19..50
    FN_KW@19..21 "fn"
    WHITESPACE@21..22 " "
    NAME@22..26
      IDENT@22..26 "main"
    PARAM_LIST@26..28
      L_PAREN@26..27 "("
      R_PAREN@27..28 ")"
    WHITESPACE@28..29 " "
    BLOCK_EXPR@29..50
      STMT_LIST@29..50
        L_CURLY@29..30 "{"
        WHITESPACE@30..35 "\n    "
        EXPR_STMT@35..48
          CALL_EXPR@35..47
            PATH_EXPR@35..38
              PATH@35..38
                PATH_SEGMENT@35..38
                  NAME_REF@35..38
                    IDENT@35..38 "foo"
            ARG_LIST@38..47
              L_PAREN@38..39 "("
              LOOP_EXPR@39..46
                LOOP_KW@39..43 "loop"
                WHITESPACE@43..44 " "
                BLOCK_EXPR@44..46
                  STMT_LIST@44..46
                    L_CURLY@44..45 "{"
                    R_CURLY@45..46 "}"
              R_PAREN@46..47 ")"
          SEMICOLON@47..48 ";"
        WHITESPACE@48..49 "\n"
        R_CURLY@49..50 "}"