[INFO] updating cached repository https://github.com/tawashichan/type_inference_sample
[INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] f21fbdd75c702bc74c35ac2819fb139de122bbb0
[INFO] checking tawashichan/type_inference_sample against master#209b2be09fcaff937480d1fbbe8b31646e361c7a for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftawashichan%2Ftype_inference_sample" "/workspace/builds/worker-12/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-12/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/tawashichan/type_inference_sample on toolchain 209b2be09fcaff937480d1fbbe8b31646e361c7a
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/tawashichan/type_inference_sample
[INFO] finished tweaking git repo https://github.com/tawashichan/type_inference_sample
[INFO] tweaked toml for git repo https://github.com/tawashichan/type_inference_sample written to /workspace/builds/worker-12/source/Cargo.toml
[INFO] crate git repo https://github.com/tawashichan/type_inference_sample already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+209b2be09fcaff937480d1fbbe8b31646e361c7a" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stdout] 1f70d5d487fce12844046d1bf7735cced399faf37dd837f17f700100bd45f497
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `"docker" "start" "-a" "1f70d5d487fce12844046d1bf7735cced399faf37dd837f17f700100bd45f497"`
[INFO] [stderr]    Compiling libc v0.2.60
[INFO] [stderr]     Checking rand v0.4.6
[INFO] [stderr]     Checking nanoid v0.1.3
[INFO] [stderr]     Checking type_inference v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:233:30
[INFO] [stderr]     |
[INFO] [stderr] 233 |         [TypeEquation(t1,t2),rest..] if t1 == t2 => {
[INFO] [stderr]     |                              ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:234:23
[INFO] [stderr]     |
[INFO] [stderr] 234 |             unify_sub(rest)
[INFO] [stderr]     |                       ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:236:84
[INFO] [stderr]     |
[INFO] [stderr] 236 |         [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => {
[INFO] [stderr]     |                                                                                    ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:237:41
[INFO] [stderr]     |
[INFO] [stderr] 237 |             let re: Vec<TypeEquation> = rest.iter().cloned().chain(vec![TypeEquation(f1_a.clone(),f2_a.clone()),TypeEquation(f1_b.clone(),f2_b.clone())]).collect();
[INFO] [stderr]     |                                         ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:240:45
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                             ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:240:91
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                                                                           ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:241:49
[INFO] [stderr]     |
[INFO] [stderr] 241 |             let mut s = unify_sub(&assign(v,typ,rest));
[INFO] [stderr]     |                                                 ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:43:17
[INFO] [stderr]    |
[INFO] [stderr] 43 |         [first, rest..] => match first {
[INFO] [stderr]    |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:44:27
[INFO] [stderr]    |
[INFO] [stderr] 44 |             '\"' => (acm, rest),
[INFO] [stderr]    |                           ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:45:31
[INFO] [stderr]    |
[INFO] [stderr] 45 |             _c => get_str_sub(rest, format!("{}{}", acm, first)),
[INFO] [stderr]    |                               ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:57:17
[INFO] [stderr]    |
[INFO] [stderr] 57 |         [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => {
[INFO] [stderr]    |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:58:29
[INFO] [stderr]    |
[INFO] [stderr] 58 |             get_keyword_sub(rest, format!("{}{}", acm, first))
[INFO] [stderr]    |                             ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:88:17
[INFO] [stderr]    |
[INFO] [stderr] 88 |         [first, rest..] => {
[INFO] [stderr]    |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:90:33
[INFO] [stderr]    |
[INFO] [stderr] 90 |                 get_num_str_sub(rest, format!("{}{}", acm, first), is_float, is_minus)
[INFO] [stderr]    |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:92:33
[INFO] [stderr]    |
[INFO] [stderr] 92 |                 get_num_str_sub(rest, format!("{}{}", acm, first), is_float, is_minus)
[INFO] [stderr]    |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:94:33
[INFO] [stderr]    |
[INFO] [stderr] 94 |                 get_num_str_sub(rest, format!("{}{}", acm, first), true, is_minus)
[INFO] [stderr]    |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |         [first, rest..] => match first {
[INFO] [stderr]     |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:106:32
[INFO] [stderr]     |
[INFO] [stderr] 106 |             '\n' => next_token(rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:107:31
[INFO] [stderr]     |
[INFO] [stderr] 107 |             ' ' => next_token(rest),
[INFO] [stderr]     |                               ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:108:32
[INFO] [stderr]     |
[INFO] [stderr] 108 |             '\t' => next_token(rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:109:35
[INFO] [stderr]     |
[INFO] [stderr] 109 |             '=' => (Token::EQUAL, rest),
[INFO] [stderr]     |                                   ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:110:34
[INFO] [stderr]     |
[INFO] [stderr] 110 |             '(' => (Token::LPAR, rest),
[INFO] [stderr]     |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:111:34
[INFO] [stderr]     |
[INFO] [stderr] 111 |             ')' => (Token::RPAR, rest),
[INFO] [stderr]     |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:112:38
[INFO] [stderr]     |
[INFO] [stderr] 112 |             '[' => (Token::LBRACKET, rest),
[INFO] [stderr]     |                                      ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:113:38
[INFO] [stderr]     |
[INFO] [stderr] 113 |             ']' => (Token::RBRACKET, rest),
[INFO] [stderr]     |                                      ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:114:34
[INFO] [stderr]     |
[INFO] [stderr] 114 |             '+' => (Token::PLUS, rest),
[INFO] [stderr]     |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:115:32
[INFO] [stderr]     |
[INFO] [stderr] 115 |             '_' => (Token::ANY,rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:116:26
[INFO] [stderr]     |
[INFO] [stderr] 116 |             '-' => match rest {
[INFO] [stderr]     |                          ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:117:23
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                       ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:117:49
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                                                 ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:118:37
[INFO] [stderr]     |
[INFO] [stderr] 118 |                 _ => (Token::MINUS, rest),
[INFO] [stderr]     |                                     ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:120:26
[INFO] [stderr]     |
[INFO] [stderr] 120 |             ':' => match rest {
[INFO] [stderr]     |                          ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:121:22
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                      ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:121:48
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                                                ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:122:33
[INFO] [stderr]     |
[INFO] [stderr] 122 |                 _ => next_token(rest)
[INFO] [stderr]     |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:124:32
[INFO] [stderr]     |
[INFO] [stderr] 124 |             '<' => (Token::LT, rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:125:33
[INFO] [stderr]     |
[INFO] [stderr] 125 |             '*' => (Token::MUL, rest),
[INFO] [stderr]     |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:126:33
[INFO] [stderr]     |
[INFO] [stderr] 126 |             '|' => (Token::BAR, rest),
[INFO] [stderr]     |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:19:23
[INFO] [stderr]    |
[INFO] [stderr] 19 |         [Token::PLUS, res..] => {
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:20:38
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let (ex, re) = parse_exp(res)?;
[INFO] [stderr]    |                                      ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 |         [Token::RPAR, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 |         [Token::IN, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                     ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |         [Token::LT, res..] => {
[INFO] [stderr]    |                     ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:34:41
[INFO] [stderr]    |
[INFO] [stderr] 34 |             let (ex, re) = parse_op_exp(res)?;
[INFO] [stderr]    |                                         ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:37:23
[INFO] [stderr]    |
[INFO] [stderr] 37 |         [Token::EQUAL,res..] => {
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:38:41
[INFO] [stderr]    |
[INFO] [stderr] 38 |             let (ex, re) = parse_op_exp(res)?;
[INFO] [stderr]    |                                         ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:41:23
[INFO] [stderr]    |
[INFO] [stderr] 41 |         [Token::MINUS,res..] => {
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:42:41
[INFO] [stderr]    |
[INFO] [stderr] 42 |             let (ex, re) = parse_op_exp(res)?;
[INFO] [stderr]    |                                         ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:51:23
[INFO] [stderr]    |
[INFO] [stderr] 51 |         [Token::LPAR, rest..] => {
[INFO] [stderr]    |                       ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:52:40
[INFO] [stderr]    |
[INFO] [stderr] 52 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]    |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:54:31
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                               ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:54:49
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                                                 ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:58:25
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:58:54
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                                                      ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:59:25
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:59:61
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                                                             ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:60:23
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                       ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:60:55
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                                                       ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:61:24
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:61:57
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                                                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |         [Token::LET, Token::REC, rest..] => parse_let_rec(tokens),
[INFO] [stderr]    |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:63:21
[INFO] [stderr]    |
[INFO] [stderr] 63 |         [Token::IF, rest..] => parse_if(tokens),
[INFO] [stderr]    |                     ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:64:27
[INFO] [stderr]    |
[INFO] [stderr] 64 |         [Token::FUNCTION, rest..] => parse_fun(tokens),
[INFO] [stderr]    |                           ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:74:57
[INFO] [stderr]    |
[INFO] [stderr] 74 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:75:40
[INFO] [stderr]    |
[INFO] [stderr] 75 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]    |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:84:57
[INFO] [stderr]    |
[INFO] [stderr] 84 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:85:40
[INFO] [stderr]    |
[INFO] [stderr] 85 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]    |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:94:63
[INFO] [stderr]    |
[INFO] [stderr] 94 |         [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => {
[INFO] [stderr]    |                                                               ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:95:62
[INFO] [stderr]    |
[INFO] [stderr] 95 |             let ((f_v,v,exp),res) = parse_rec_fun(s.clone(), rest)?;
[INFO] [stderr]    |                                                              ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |                 [Token::IN, re..] => {
[INFO] [stderr]    |                             ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:98:45
[INFO] [stderr]    |
[INFO] [stderr] 98 |                     let (ex, r) = parse_exp(re)?;
[INFO] [stderr]    |                                             ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/parser.rs:117:21
[INFO] [stderr]     |
[INFO] [stderr] 117 |         [Token::IF, rest..] => {
[INFO] [stderr]     |                     ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/parser.rs:118:40
[INFO] [stderr]     |
[INFO] [stderr] 118 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]     |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]    --> src/parser.rs:120:31
[INFO] [stderr]     |
[INFO] [stderr] 120 |                 [Token::THEN, re..] => {
[INFO] [stderr]     |                               ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]    --> src/parser.rs:121:45
[INFO] [stderr]     |
[INFO] [stderr] 121 |                     let (ex, r) = parse_exp(re)?;
[INFO] [stderr]     |                                             ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rr` in this scope
[INFO] [stderr]    --> src/parser.rs:123:39
[INFO] [stderr]     |
[INFO] [stderr] 123 |                         [Token::ELSE, rr..] => {
[INFO] [stderr]     |                                       ^^ help: a tuple variant with a similar name exists: `Err`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rr` in this scope
[INFO] [stderr]    --> src/parser.rs:124:54
[INFO] [stderr]     |
[INFO] [stderr] 124 | ...                   let (e, rrr) = parse_exp(rr)?;
[INFO] [stderr]     |                                                ^^ help: a tuple variant with a similar name exists: `Err`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/parser.rs:130:42
[INFO] [stderr]     |
[INFO] [stderr] 130 |                 _ => Err(format!("{:?}", rest)),
[INFO] [stderr]     |                                          ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:233:30
[INFO] [stderr]     |
[INFO] [stderr] 233 |         [TypeEquation(t1,t2),rest..] if t1 == t2 => {
[INFO] [stderr]     |                              ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:236:84
[INFO] [stderr]     |
[INFO] [stderr] 236 |         [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => {
[INFO] [stderr]     |                                                                                    ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:240:45
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                             ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:240:91
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                                                                           ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/lexer.rs:43:17
[INFO] [stderr]    |
[INFO] [stderr] 43 |         [first, rest..] => match first {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/lexer.rs:57:17
[INFO] [stderr]    |
[INFO] [stderr] 57 |         [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/lexer.rs:88:17
[INFO] [stderr]    |
[INFO] [stderr] 88 |         [first, rest..] => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/lexer.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |         [first, rest..] => match first {
[INFO] [stderr]     |                 ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/lexer.rs:117:23
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/lexer.rs:121:22
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:19:23
[INFO] [stderr]    |
[INFO] [stderr] 19 |         [Token::PLUS, res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:23:51
[INFO] [stderr]    |
[INFO] [stderr] 23 |         [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest),
[INFO] [stderr]    |                                                   ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 |         [Token::RPAR, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 |         [Token::IN, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |         [Token::LT, res..] => {
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:37:23
[INFO] [stderr]    |
[INFO] [stderr] 37 |         [Token::EQUAL,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:41:23
[INFO] [stderr]    |
[INFO] [stderr] 41 |         [Token::MINUS,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:51:23
[INFO] [stderr]    |
[INFO] [stderr] 51 |         [Token::LPAR, rest..] => {
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:54:31
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                               ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:58:25
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:59:25
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:60:23
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:61:24
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |         [Token::LET, Token::REC, rest..] => parse_let_rec(tokens),
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:63:21
[INFO] [stderr]    |
[INFO] [stderr] 63 |         [Token::IF, rest..] => parse_if(tokens),
[INFO] [stderr]    |                     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:64:27
[INFO] [stderr]    |
[INFO] [stderr] 64 |         [Token::FUNCTION, rest..] => parse_fun(tokens),
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:74:57
[INFO] [stderr]    |
[INFO] [stderr] 74 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:84:57
[INFO] [stderr]    |
[INFO] [stderr] 84 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:94:63
[INFO] [stderr]    |
[INFO] [stderr] 94 |         [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => {
[INFO] [stderr]    |                                                               ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |                 [Token::IN, re..] => {
[INFO] [stderr]    |                             ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/parser.rs:117:21
[INFO] [stderr]     |
[INFO] [stderr] 117 |         [Token::IF, rest..] => {
[INFO] [stderr]     |                     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/parser.rs:120:31
[INFO] [stderr]     |
[INFO] [stderr] 120 |                 [Token::THEN, re..] => {
[INFO] [stderr]     |                               ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/parser.rs:123:39
[INFO] [stderr]     |
[INFO] [stderr] 123 |                         [Token::ELSE, rr..] => {
[INFO] [stderr]     |                                       ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:233:30
[INFO] [stderr]     |
[INFO] [stderr] 233 |         [TypeEquation(t1,t2),rest..] if t1 == t2 => {
[INFO] [stderr]     |                              ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:236:84
[INFO] [stderr]     |
[INFO] [stderr] 236 |         [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => {
[INFO] [stderr]     |                                                                                    ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:240:45
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                             ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:240:91
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                                                                           ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/lexer.rs:43:17
[INFO] [stderr]    |
[INFO] [stderr] 43 |         [first, rest..] => match first {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/lexer.rs:57:17
[INFO] [stderr]    |
[INFO] [stderr] 57 |         [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/lexer.rs:88:17
[INFO] [stderr]    |
[INFO] [stderr] 88 |         [first, rest..] => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/lexer.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |         [first, rest..] => match first {
[INFO] [stderr]     |                 ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/lexer.rs:117:23
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/lexer.rs:121:22
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:19:23
[INFO] [stderr]    |
[INFO] [stderr] 19 |         [Token::PLUS, res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:23:51
[INFO] [stderr]    |
[INFO] [stderr] 23 |         [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest),
[INFO] [stderr]    |                                                   ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 |         [Token::RPAR, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 |         [Token::IN, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |         [Token::LT, res..] => {
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:37:23
[INFO] [stderr]    |
[INFO] [stderr] 37 |         [Token::EQUAL,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:41:23
[INFO] [stderr]    |
[INFO] [stderr] 41 |         [Token::MINUS,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:51:23
[INFO] [stderr]    |
[INFO] [stderr] 51 |         [Token::LPAR, rest..] => {
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:54:31
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                               ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:58:25
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:59:25
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:60:23
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:61:24
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |         [Token::LET, Token::REC, rest..] => parse_let_rec(tokens),
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:63:21
[INFO] [stderr]    |
[INFO] [stderr] 63 |         [Token::IF, rest..] => parse_if(tokens),
[INFO] [stderr]    |                     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:64:27
[INFO] [stderr]    |
[INFO] [stderr] 64 |         [Token::FUNCTION, rest..] => parse_fun(tokens),
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:74:57
[INFO] [stderr]    |
[INFO] [stderr] 74 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:84:57
[INFO] [stderr]    |
[INFO] [stderr] 84 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:94:63
[INFO] [stderr]    |
[INFO] [stderr] 94 |         [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => {
[INFO] [stderr]    |                                                               ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |                 [Token::IN, re..] => {
[INFO] [stderr]    |                             ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/parser.rs:117:21
[INFO] [stderr]     |
[INFO] [stderr] 117 |         [Token::IF, rest..] => {
[INFO] [stderr]     |                     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/parser.rs:120:31
[INFO] [stderr]     |
[INFO] [stderr] 120 |                 [Token::THEN, re..] => {
[INFO] [stderr]     |                               ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/parser.rs:123:39
[INFO] [stderr]     |
[INFO] [stderr] 123 |                         [Token::ELSE, rr..] => {
[INFO] [stderr]     |                                       ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `unify`
[INFO] [stderr]  --> src/main.rs:7:23
[INFO] [stderr]   |
[INFO] [stderr] 7 | use ast::{Exp,Op,TEnv,unify};
[INFO] [stderr]   |                       ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:233:30
[INFO] [stderr]     |
[INFO] [stderr] 233 |         [TypeEquation(t1,t2),rest..] if t1 == t2 => {
[INFO] [stderr]     |                              ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:234:23
[INFO] [stderr]     |
[INFO] [stderr] 234 |             unify_sub(rest)
[INFO] [stderr]     |                       ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:236:84
[INFO] [stderr]     |
[INFO] [stderr] 236 |         [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => {
[INFO] [stderr]     |                                                                                    ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:237:41
[INFO] [stderr]     |
[INFO] [stderr] 237 |             let re: Vec<TypeEquation> = rest.iter().cloned().chain(vec![TypeEquation(f1_a.clone(),f2_a.clone()),TypeEquation(f1_b.clone(),f2_b.clone())]).collect();
[INFO] [stderr]     |                                         ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:240:45
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                             ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:240:91
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                                                                           ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/ast.rs:241:49
[INFO] [stderr]     |
[INFO] [stderr] 241 |             let mut s = unify_sub(&assign(v,typ,rest));
[INFO] [stderr]     |                                                 ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:43:17
[INFO] [stderr]    |
[INFO] [stderr] 43 |         [first, rest..] => match first {
[INFO] [stderr]    |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:44:27
[INFO] [stderr]    |
[INFO] [stderr] 44 |             '\"' => (acm, rest),
[INFO] [stderr]    |                           ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:45:31
[INFO] [stderr]    |
[INFO] [stderr] 45 |             _c => get_str_sub(rest, format!("{}{}", acm, first)),
[INFO] [stderr]    |                               ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:57:17
[INFO] [stderr]    |
[INFO] [stderr] 57 |         [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => {
[INFO] [stderr]    |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:58:29
[INFO] [stderr]    |
[INFO] [stderr] 58 |             get_keyword_sub(rest, format!("{}{}", acm, first))
[INFO] [stderr]    |                             ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:88:17
[INFO] [stderr]    |
[INFO] [stderr] 88 |         [first, rest..] => {
[INFO] [stderr]    |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:90:33
[INFO] [stderr]    |
[INFO] [stderr] 90 |                 get_num_str_sub(rest, format!("{}{}", acm, first), is_float, is_minus)
[INFO] [stderr]    |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:92:33
[INFO] [stderr]    |
[INFO] [stderr] 92 |                 get_num_str_sub(rest, format!("{}{}", acm, first), is_float, is_minus)
[INFO] [stderr]    |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/lexer.rs:94:33
[INFO] [stderr]    |
[INFO] [stderr] 94 |                 get_num_str_sub(rest, format!("{}{}", acm, first), true, is_minus)
[INFO] [stderr]    |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |         [first, rest..] => match first {
[INFO] [stderr]     |                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:106:32
[INFO] [stderr]     |
[INFO] [stderr] 106 |             '\n' => next_token(rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:107:31
[INFO] [stderr]     |
[INFO] [stderr] 107 |             ' ' => next_token(rest),
[INFO] [stderr]     |                               ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:108:32
[INFO] [stderr]     |
[INFO] [stderr] 108 |             '\t' => next_token(rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:109:35
[INFO] [stderr]     |
[INFO] [stderr] 109 |             '=' => (Token::EQUAL, rest),
[INFO] [stderr]     |                                   ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:110:34
[INFO] [stderr]     |
[INFO] [stderr] 110 |             '(' => (Token::LPAR, rest),
[INFO] [stderr]     |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:111:34
[INFO] [stderr]     |
[INFO] [stderr] 111 |             ')' => (Token::RPAR, rest),
[INFO] [stderr]     |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:112:38
[INFO] [stderr]     |
[INFO] [stderr] 112 |             '[' => (Token::LBRACKET, rest),
[INFO] [stderr]     |                                      ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:113:38
[INFO] [stderr]     |
[INFO] [stderr] 113 |             ']' => (Token::RBRACKET, rest),
[INFO] [stderr]     |                                      ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:114:34
[INFO] [stderr]     |
[INFO] [stderr] 114 |             '+' => (Token::PLUS, rest),
[INFO] [stderr]     |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:115:32
[INFO] [stderr]     |
[INFO] [stderr] 115 |             '_' => (Token::ANY,rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:116:26
[INFO] [stderr]     |
[INFO] [stderr] 116 |             '-' => match rest {
[INFO] [stderr]     |                          ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:117:23
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                       ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:117:49
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                                                 ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:118:37
[INFO] [stderr]     |
[INFO] [stderr] 118 |                 _ => (Token::MINUS, rest),
[INFO] [stderr]     |                                     ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:120:26
[INFO] [stderr]     |
[INFO] [stderr] 120 |             ':' => match rest {
[INFO] [stderr]     |                          ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:121:22
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                      ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]    --> src/lexer.rs:121:48
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                                                ^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:122:33
[INFO] [stderr]     |
[INFO] [stderr] 122 |                 _ => next_token(rest)
[INFO] [stderr]     |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:124:32
[INFO] [stderr]     |
[INFO] [stderr] 124 |             '<' => (Token::LT, rest),
[INFO] [stderr]     |                                ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:125:33
[INFO] [stderr]     |
[INFO] [stderr] 125 |             '*' => (Token::MUL, rest),
[INFO] [stderr]     |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/lexer.rs:126:33
[INFO] [stderr]     |
[INFO] [stderr] 126 |             '|' => (Token::BAR, rest),
[INFO] [stderr]     |                                 ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:19:23
[INFO] [stderr]    |
[INFO] [stderr] 19 |         [Token::PLUS, res..] => {
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:20:38
[INFO] [stderr]    |
[INFO] [stderr] 20 |             let (ex, re) = parse_exp(res)?;
[INFO] [stderr]    |                                      ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 |         [Token::RPAR, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 |         [Token::IN, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                     ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |         [Token::LT, res..] => {
[INFO] [stderr]    |                     ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:34:41
[INFO] [stderr]    |
[INFO] [stderr] 34 |             let (ex, re) = parse_op_exp(res)?;
[INFO] [stderr]    |                                         ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:37:23
[INFO] [stderr]    |
[INFO] [stderr] 37 |         [Token::EQUAL,res..] => {
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:38:41
[INFO] [stderr]    |
[INFO] [stderr] 38 |             let (ex, re) = parse_op_exp(res)?;
[INFO] [stderr]    |                                         ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:41:23
[INFO] [stderr]    |
[INFO] [stderr] 41 |         [Token::MINUS,res..] => {
[INFO] [stderr]    |                       ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `res` in this scope
[INFO] [stderr]   --> src/parser.rs:42:41
[INFO] [stderr]    |
[INFO] [stderr] 42 |             let (ex, re) = parse_op_exp(res)?;
[INFO] [stderr]    |                                         ^^^ help: a local variable with a similar name exists: `rest`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:51:23
[INFO] [stderr]    |
[INFO] [stderr] 51 |         [Token::LPAR, rest..] => {
[INFO] [stderr]    |                       ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:52:40
[INFO] [stderr]    |
[INFO] [stderr] 52 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]    |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:54:31
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                               ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:54:49
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                                                 ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:58:25
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:58:54
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                                                      ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:59:25
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:59:61
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                                                             ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:60:23
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                       ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:60:55
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                                                       ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:61:24
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:61:57
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                                                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |         [Token::LET, Token::REC, rest..] => parse_let_rec(tokens),
[INFO] [stderr]    |                                  ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:63:21
[INFO] [stderr]    |
[INFO] [stderr] 63 |         [Token::IF, rest..] => parse_if(tokens),
[INFO] [stderr]    |                     ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:64:27
[INFO] [stderr]    |
[INFO] [stderr] 64 |         [Token::FUNCTION, rest..] => parse_fun(tokens),
[INFO] [stderr]    |                           ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:74:57
[INFO] [stderr]    |
[INFO] [stderr] 74 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:75:40
[INFO] [stderr]    |
[INFO] [stderr] 75 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]    |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:84:57
[INFO] [stderr]    |
[INFO] [stderr] 84 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:85:40
[INFO] [stderr]    |
[INFO] [stderr] 85 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]    |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:94:63
[INFO] [stderr]    |
[INFO] [stderr] 94 |         [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => {
[INFO] [stderr]    |                                                               ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]   --> src/parser.rs:95:62
[INFO] [stderr]    |
[INFO] [stderr] 95 |             let ((f_v,v,exp),res) = parse_rec_fun(s.clone(), rest)?;
[INFO] [stderr]    |                                                              ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |                 [Token::IN, re..] => {
[INFO] [stderr]    |                             ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]   --> src/parser.rs:98:45
[INFO] [stderr]    |
[INFO] [stderr] 98 |                     let (ex, r) = parse_exp(re)?;
[INFO] [stderr]    |                                             ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/parser.rs:117:21
[INFO] [stderr]     |
[INFO] [stderr] 117 |         [Token::IF, rest..] => {
[INFO] [stderr]     |                     ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/parser.rs:118:40
[INFO] [stderr]     |
[INFO] [stderr] 118 |             let (exp, res) = parse_exp(rest)?;
[INFO] [stderr]     |                                        ^^^^ not found in this scope
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]    --> src/parser.rs:120:31
[INFO] [stderr]     |
[INFO] [stderr] 120 |                 [Token::THEN, re..] => {
[INFO] [stderr]     |                               ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `re` in this scope
[INFO] [stderr]    --> src/parser.rs:121:45
[INFO] [stderr]     |
[INFO] [stderr] 121 |                     let (ex, r) = parse_exp(re)?;
[INFO] [stderr]     |                                             ^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rr` in this scope
[INFO] [stderr]    --> src/parser.rs:123:39
[INFO] [stderr]     |
[INFO] [stderr] 123 |                         [Token::ELSE, rr..] => {
[INFO] [stderr]     |                                       ^^ help: a tuple variant with a similar name exists: `Err`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rr` in this scope
[INFO] [stderr]    --> src/parser.rs:124:54
[INFO] [stderr]     |
[INFO] [stderr] 124 | ...                   let (e, rrr) = parse_exp(rr)?;
[INFO] [stderr]     |                                                ^^ help: a tuple variant with a similar name exists: `Err`
[INFO] [stderr] 
[INFO] [stderr] error[E0425]: cannot find value `rest` in this scope
[INFO] [stderr]    --> src/parser.rs:130:42
[INFO] [stderr]     |
[INFO] [stderr] 130 |                 _ => Err(format!("{:?}", rest)),
[INFO] [stderr]     |                                          ^^^^ help: a local variable with a similar name exists: `res`
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:233:30
[INFO] [stderr]     |
[INFO] [stderr] 233 |         [TypeEquation(t1,t2),rest..] if t1 == t2 => {
[INFO] [stderr]     |                              ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:236:84
[INFO] [stderr]     |
[INFO] [stderr] 236 |         [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => {
[INFO] [stderr]     |                                                                                    ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:240:45
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                             ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/ast.rs:240:91
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                                                                           ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/lexer.rs:43:17
[INFO] [stderr]    |
[INFO] [stderr] 43 |         [first, rest..] => match first {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/lexer.rs:57:17
[INFO] [stderr]    |
[INFO] [stderr] 57 |         [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/lexer.rs:88:17
[INFO] [stderr]    |
[INFO] [stderr] 88 |         [first, rest..] => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/lexer.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |         [first, rest..] => match first {
[INFO] [stderr]     |                 ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/lexer.rs:117:23
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/lexer.rs:121:22
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:19:23
[INFO] [stderr]    |
[INFO] [stderr] 19 |         [Token::PLUS, res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:23:51
[INFO] [stderr]    |
[INFO] [stderr] 23 |         [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest),
[INFO] [stderr]    |                                                   ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 |         [Token::RPAR, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 |         [Token::IN, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |         [Token::LT, res..] => {
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:37:23
[INFO] [stderr]    |
[INFO] [stderr] 37 |         [Token::EQUAL,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:41:23
[INFO] [stderr]    |
[INFO] [stderr] 41 |         [Token::MINUS,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:51:23
[INFO] [stderr]    |
[INFO] [stderr] 51 |         [Token::LPAR, rest..] => {
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:54:31
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                               ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:58:25
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:59:25
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:60:23
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:61:24
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |         [Token::LET, Token::REC, rest..] => parse_let_rec(tokens),
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:63:21
[INFO] [stderr]    |
[INFO] [stderr] 63 |         [Token::IF, rest..] => parse_if(tokens),
[INFO] [stderr]    |                     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:64:27
[INFO] [stderr]    |
[INFO] [stderr] 64 |         [Token::FUNCTION, rest..] => parse_fun(tokens),
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:74:57
[INFO] [stderr]    |
[INFO] [stderr] 74 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:84:57
[INFO] [stderr]    |
[INFO] [stderr] 84 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:94:63
[INFO] [stderr]    |
[INFO] [stderr] 94 |         [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => {
[INFO] [stderr]    |                                                               ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]   --> src/parser.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |                 [Token::IN, re..] => {
[INFO] [stderr]    |                             ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]    = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/parser.rs:117:21
[INFO] [stderr]     |
[INFO] [stderr] 117 |         [Token::IF, rest..] => {
[INFO] [stderr]     |                     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/parser.rs:120:31
[INFO] [stderr]     |
[INFO] [stderr] 120 |                 [Token::THEN, re..] => {
[INFO] [stderr]     |                               ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: half-open range patterns are unstable
[INFO] [stderr]    --> src/parser.rs:123:39
[INFO] [stderr]     |
[INFO] [stderr] 123 |                         [Token::ELSE, rr..] => {
[INFO] [stderr]     |                                       ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
[INFO] [stderr]     = help: add `#![feature(half_open_range_patterns)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:233:30
[INFO] [stderr]     |
[INFO] [stderr] 233 |         [TypeEquation(t1,t2),rest..] if t1 == t2 => {
[INFO] [stderr]     |                              ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:236:84
[INFO] [stderr]     |
[INFO] [stderr] 236 |         [TypeEquation(Type::Func(box f1_a,box f1_b),Type::Func(box f2_a,box f2_b)),rest..] => {
[INFO] [stderr]     |                                                                                    ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:240:45
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                             ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/ast.rs:240:91
[INFO] [stderr]     |
[INFO] [stderr] 240 |         [TypeEquation(Type::TypeVar(v),typ),rest..] | [TypeEquation(typ,Type::TypeVar(v)),rest..] => {
[INFO] [stderr]     |                                                                                           ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/lexer.rs:43:17
[INFO] [stderr]    |
[INFO] [stderr] 43 |         [first, rest..] => match first {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/lexer.rs:57:17
[INFO] [stderr]    |
[INFO] [stderr] 57 |         [first, rest..] if first.is_alphabetic() || first.is_numeric() || *first == '\'' => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/lexer.rs:88:17
[INFO] [stderr]    |
[INFO] [stderr] 88 |         [first, rest..] => {
[INFO] [stderr]    |                 ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/lexer.rs:105:17
[INFO] [stderr]     |
[INFO] [stderr] 105 |         [first, rest..] => match first {
[INFO] [stderr]     |                 ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/lexer.rs:117:23
[INFO] [stderr]     |
[INFO] [stderr] 117 |                 ['>', res..] => (Token::RARROW, res),
[INFO] [stderr]     |                       ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/lexer.rs:121:22
[INFO] [stderr]     |
[INFO] [stderr] 121 |                 [':',res..] => (Token::JOINER, res),
[INFO] [stderr]     |                      ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:19:23
[INFO] [stderr]    |
[INFO] [stderr] 19 |         [Token::PLUS, res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:23:51
[INFO] [stderr]    |
[INFO] [stderr] 23 |         [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest),
[INFO] [stderr]    |                                                   ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:24:23
[INFO] [stderr]    |
[INFO] [stderr] 24 |         [Token::RPAR, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:25:21
[INFO] [stderr]    |
[INFO] [stderr] 25 |         [Token::IN, res..] => Ok((exp, rest)),
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:33:21
[INFO] [stderr]    |
[INFO] [stderr] 33 |         [Token::LT, res..] => {
[INFO] [stderr]    |                     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:37:23
[INFO] [stderr]    |
[INFO] [stderr] 37 |         [Token::EQUAL,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:41:23
[INFO] [stderr]    |
[INFO] [stderr] 41 |         [Token::MINUS,res..] => {
[INFO] [stderr]    |                       ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:51:23
[INFO] [stderr]    |
[INFO] [stderr] 51 |         [Token::LPAR, rest..] => {
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:54:31
[INFO] [stderr]    |
[INFO] [stderr] 54 |                 [Token::RPAR, re..] => Ok((exp, re)),
[INFO] [stderr]    |                               ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:58:25
[INFO] [stderr]    |
[INFO] [stderr] 58 |         [Token::INT(i), rest..] => Ok((Exp::Int(*i), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:59:25
[INFO] [stderr]    |
[INFO] [stderr] 59 |         [Token::VAR(s), rest..] => Ok((Exp::Var(s.clone()), rest)),
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:60:23
[INFO] [stderr]    |
[INFO] [stderr] 60 |         [Token::TRUE, rest..] => Ok((Exp::Bool(true), rest)),
[INFO] [stderr]    |                       ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:61:24
[INFO] [stderr]    |
[INFO] [stderr] 61 |         [Token::FALSE, rest..] => Ok((Exp::Bool(false), rest)),
[INFO] [stderr]    |                        ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:62:34
[INFO] [stderr]    |
[INFO] [stderr] 62 |         [Token::LET, Token::REC, rest..] => parse_let_rec(tokens),
[INFO] [stderr]    |                                  ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:63:21
[INFO] [stderr]    |
[INFO] [stderr] 63 |         [Token::IF, rest..] => parse_if(tokens),
[INFO] [stderr]    |                     ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:64:27
[INFO] [stderr]    |
[INFO] [stderr] 64 |         [Token::FUNCTION, rest..] => parse_fun(tokens),
[INFO] [stderr]    |                           ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:74:57
[INFO] [stderr]    |
[INFO] [stderr] 74 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:84:57
[INFO] [stderr]    |
[INFO] [stderr] 84 |         [Token::FUNCTION, Token::VAR(s), Token::RARROW, rest..] => {
[INFO] [stderr]    |                                                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:94:63
[INFO] [stderr]    |
[INFO] [stderr] 94 |         [Token::LET, Token::REC, Token::VAR(s), Token::EQUAL, rest..] => {
[INFO] [stderr]    |                                                               ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]   --> src/parser.rs:97:29
[INFO] [stderr]    |
[INFO] [stderr] 97 |                 [Token::IN, re..] => {
[INFO] [stderr]    |                             ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]    = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/parser.rs:117:21
[INFO] [stderr]     |
[INFO] [stderr] 117 |         [Token::IF, rest..] => {
[INFO] [stderr]     |                     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/parser.rs:120:31
[INFO] [stderr]     |
[INFO] [stderr] 120 |                 [Token::THEN, re..] => {
[INFO] [stderr]     |                               ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: exclusive range pattern syntax is experimental
[INFO] [stderr]    --> src/parser.rs:123:39
[INFO] [stderr]     |
[INFO] [stderr] 123 |                         [Token::ELSE, rr..] => {
[INFO] [stderr]     |                                       ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: see issue #37854 <https://github.com/rust-lang/rust/issues/37854> for more information
[INFO] [stderr]     = help: add `#![feature(exclusive_range_pattern)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `unify`
[INFO] [stderr]  --> src/main.rs:7:23
[INFO] [stderr]   |
[INFO] [stderr] 7 | use ast::{Exp,Op,TEnv,unify};
[INFO] [stderr]   |                       ^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] error[E0029]: only char and numeric types are allowed in range patterns
[INFO] [stderr]   --> src/parser.rs:23:51
[INFO] [stderr]    |
[INFO] [stderr] 23 |         [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest),
[INFO] [stderr]    |                                                   ^^^^ this is of type `&[lexer::Token]` but it should be `char` or numeric
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 145 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0029, E0425, E0658.
[INFO] [stderr] For more information about an error, try `rustc --explain E0029`.
[INFO] [stderr] error: could not compile `type_inference`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error[E0029]: only char and numeric types are allowed in range patterns
[INFO] [stderr]   --> src/parser.rs:23:51
[INFO] [stderr]    |
[INFO] [stderr] 23 |         [Token::LET, Token::VAR(s), Token::EQUAL, rest..] => parse_exp(rest),
[INFO] [stderr]    |                                                   ^^^^ this is of type `&[lexer::Token]` but it should be `char` or numeric
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 145 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0029, E0425, E0658.
[INFO] [stderr] For more information about an error, try `rustc --explain E0029`.
[INFO] [stderr] error: could not compile `type_inference`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "1f70d5d487fce12844046d1bf7735cced399faf37dd837f17f700100bd45f497"`
[INFO] running `"docker" "rm" "-f" "1f70d5d487fce12844046d1bf7735cced399faf37dd837f17f700100bd45f497"`
[INFO] [stdout] 1f70d5d487fce12844046d1bf7735cced399faf37dd837f17f700100bd45f497
