Documentation
SOURCE_FILE@0..49
  TYPE_ALIAS@0..12
    TYPE_KW@0..4 "type"
    WHITESPACE@4..5 " "
    NAME@5..6
      IDENT@5..6 "X"
    WHITESPACE@6..7 " "
    EQ@7..8 "="
    WHITESPACE@8..9 " "
    TUPLE_TYPE@9..11
      L_PAREN@9..10 "("
      R_PAREN@10..11 ")"
    SEMICOLON@11..12 ";"
  WHITESPACE@12..14 "\n\n"
  FN@14..48
    FN_KW@14..16 "fn"
    WHITESPACE@16..17 " "
    NAME@17..21
      IDENT@17..21 "main"
    PARAM_LIST@21..23
      L_PAREN@21..22 "("
      R_PAREN@22..23 ")"
    WHITESPACE@23..24 " "
    BLOCK_EXPR@24..48
      STMT_LIST@24..48
        L_CURLY@24..25 "{"
        WHITESPACE@25..30 "\n    "
        LET_STMT@30..46
          LET_KW@30..33 "let"
          WHITESPACE@33..34 " "
          TUPLE_PAT@34..36
            L_PAREN@34..35 "("
            R_PAREN@35..36 ")"
          COLON@36..37 ":"
          PATH_TYPE@37..40
            PATH@37..40
              PATH_SEGMENT@37..40
                COLON2@37..39 "::"
                NAME_REF@39..40
                  IDENT@39..40 "X"
          WHITESPACE@40..41 " "
          EQ@41..42 "="
          WHITESPACE@42..43 " "
          TUPLE_EXPR@43..45
            L_PAREN@43..44 "("
            R_PAREN@44..45 ")"
          SEMICOLON@45..46 ";"
        WHITESPACE@46..47 "\n"
        R_CURLY@47..48 "}"
  WHITESPACE@48..49 "\n"