SOURCE_FILE@0..94 FN@0..93 FN_KW@0..2 "fn" WHITESPACE@2..3 " " NAME@3..7 IDENT@3..7 "main" PARAM_LIST@7..9 L_PAREN@7..8 "(" R_PAREN@8..9 ")" WHITESPACE@9..10 " " BLOCK_EXPR@10..93 L_CURLY@10..11 "{" WHITESPACE@11..16 "\n " LET_STMT@16..36 LET_KW@16..19 "let" WHITESPACE@19..20 " " TUPLE_PAT@20..30 L_PAREN@20..21 "(" IDENT_PAT@21..22 NAME@21..22 IDENT@21..22 "a" COMMA@22..23 "," WHITESPACE@23..24 " " IDENT_PAT@24..25 NAME@24..25 IDENT@24..25 "b" COMMA@25..26 "," WHITESPACE@26..27 " " REST_PAT@27..29 DOT2@27..29 ".." R_PAREN@29..30 ")" WHITESPACE@30..31 " " EQ@31..32 "=" WHITESPACE@32..33 " " TUPLE_EXPR@33..35 L_PAREN@33..34 "(" R_PAREN@34..35 ")" SEMICOLON@35..36 ";" WHITESPACE@36..41 "\n " LET_STMT@41..55 LET_KW@41..44 "let" WHITESPACE@44..45 " " TUPLE_PAT@45..49 L_PAREN@45..46 "(" IDENT_PAT@46..47 NAME@46..47 IDENT@46..47 "a" COMMA@47..48 "," R_PAREN@48..49 ")" WHITESPACE@49..50 " " EQ@50..51 "=" WHITESPACE@51..52 " " TUPLE_EXPR@52..54 L_PAREN@52..53 "(" R_PAREN@53..54 ")" SEMICOLON@54..55 ";" WHITESPACE@55..60 "\n " LET_STMT@60..74 LET_KW@60..63 "let" WHITESPACE@63..64 " " TUPLE_PAT@64..68 L_PAREN@64..65 "(" REST_PAT@65..67 DOT2@65..67 ".." R_PAREN@67..68 ")" WHITESPACE@68..69 " " EQ@69..70 "=" WHITESPACE@70..71 " " TUPLE_EXPR@71..73 L_PAREN@71..72 "(" R_PAREN@72..73 ")" SEMICOLON@73..74 ";" WHITESPACE@74..79 "\n " LET_STMT@79..91 LET_KW@79..82 "let" WHITESPACE@82..83 " " TUPLE_PAT@83..85 L_PAREN@83..84 "(" R_PAREN@84..85 ")" WHITESPACE@85..86 " " EQ@86..87 "=" WHITESPACE@87..88 " " TUPLE_EXPR@88..90 L_PAREN@88..89 "(" R_PAREN@89..90 ")" SEMICOLON@90..91 ";" WHITESPACE@91..92 "\n" R_CURLY@92..93 "}" WHITESPACE@93..94 "\n"