[INFO] cloning repository https://github.com/yportne13/elaboration-zoo-lsp
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yportne13/elaboration-zoo-lsp" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2Felaboration-zoo-lsp", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2Felaboration-zoo-lsp'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 193a0455cfc5f32f6c39d918ae20549226ed7945
[INFO] testing yportne13/elaboration-zoo-lsp against master#2fd6efc32704647e64d3d646d21c4c68eae100e4 for pr-149852-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2Felaboration-zoo-lsp" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/yportne13/elaboration-zoo-lsp
[INFO] finished tweaking git repo https://github.com/yportne13/elaboration-zoo-lsp
[INFO] tweaked toml for git repo https://github.com/yportne13/elaboration-zoo-lsp written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yportne13/elaboration-zoo-lsp on toolchain 2fd6efc32704647e64d3d646d21c4c68eae100e4
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/yportne13/elaboration-zoo-lsp already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rust-lapper v1.2.0
[INFO] [stderr]   Downloaded smallvec v1.14.0
[INFO] [stderr]   Downloaded lsp-server v0.7.8
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.5
[INFO] [stderr]   Downloaded litemap v0.7.5
[INFO] [stderr]   Downloaded ar_archive_writer v0.2.0
[INFO] [stderr]   Downloaded sized-chunks v0.6.5
[INFO] [stderr]   Downloaded log v0.4.26
[INFO] [stderr]   Downloaded cc v1.2.48
[INFO] [stderr]   Downloaded chumsky v0.9.3
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.31
[INFO] [stderr]   Downloaded ropey v1.6.1
[INFO] [stderr]   Downloaded crossbeam-channel v0.5.15
[INFO] [stderr]   Downloaded lsp-types v0.95.1
[INFO] [stderr]   Downloaded im-rc v15.1.0
[INFO] [stderr]   Downloaded oxc_index v0.36.0
[INFO] [stderr]   Downloaded psm v0.1.28
[INFO] [stderr]   Downloaded zerocopy v0.8.31
[INFO] [stderr]   Downloaded stacker v0.1.22
[INFO] [stderr]   Downloaded dashmap v6.1.0
[INFO] [stderr]   Downloaded rand_xoshiro v0.6.0
[INFO] [stderr]   Downloaded bitmaps v2.1.0
[INFO] [stderr]   Downloaded str_indices v0.4.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ecf0cff555b49b4239504c635197f9b2dea98df7ec5f3c37674768ad1aec8c89
[INFO] running `Command { std: "docker" "start" "-a" "ecf0cff555b49b4239504c635197f9b2dea98df7ec5f3c37674768ad1aec8c89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ecf0cff555b49b4239504c635197f9b2dea98df7ec5f3c37674768ad1aec8c89", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ecf0cff555b49b4239504c635197f9b2dea98df7ec5f3c37674768ad1aec8c89", kill_on_drop: false }`
[INFO] [stdout] ecf0cff555b49b4239504c635197f9b2dea98df7ec5f3c37674768ad1aec8c89
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b2236fb1573933e768aead00bfab47b0cd09645cecbcd8888888b392e25b6a3b
[INFO] running `Command { std: "docker" "start" "-a" "b2236fb1573933e768aead00bfab47b0cd09645cecbcd8888888b392e25b6a3b", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.94
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling litemap v0.7.5
[INFO] [stderr]    Compiling smallvec v1.14.0
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]    Compiling typenum v1.19.0
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]    Compiling autocfg v1.5.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling percent-encoding v2.3.1
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling bitmaps v2.1.0
[INFO] [stderr]    Compiling form_urlencoded v1.2.1
[INFO] [stderr]    Compiling im-rc v15.1.0
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand_xoshiro v0.6.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling stacker v0.1.22
[INFO] [stderr]    Compiling sized-chunks v0.6.5
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling str_indices v0.4.4
[INFO] [stderr]    Compiling log v0.4.26
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling ropey v1.6.1
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling colored v2.2.0
[INFO] [stderr]    Compiling rust-lapper v1.2.0
[INFO] [stderr]    Compiling oxc_index v0.36.0
[INFO] [stderr]    Compiling dashmap v6.1.0
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling serde_repr v0.1.20
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling ar_archive_writer v0.2.0
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling psm v0.1.28
[INFO] [stderr]    Compiling chumsky v0.9.3
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling lsp-server v0.7.8
[INFO] [stderr]    Compiling lsp-types v0.95.1
[INFO] [stderr]    Compiling elaboration-zoo-lsp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `hash::Hash`, `ops::Add`, and `str::pattern::Pattern`
[INFO] [stdout]  --> src/parser_lib_resilient.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add, str::pattern::Pattern, hash::Hash};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Severity`
[INFO] [stdout]  --> src/parser_lib_resilient.rs:3:43
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use crate::parser_lib::{Span, ToSpan, Severity, Diagnostic};
[INFO] [stdout]   |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L03_holes/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L04_implicit/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Raw`
[INFO] [stdout]  --> src/L04_implicit/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L04_implicit/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L04_implicit/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L05_pruning/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Raw`
[INFO] [stdout]  --> src/L05_pruning/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L05_pruning/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stdout]  --> src/L05_pruning/elaboration.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cxt::NameOrigin, empty_span, lvl2ix, parser::syntax::{Either, Icit, Raw}, Closure, Cxt, Error, Infer, Ix, Tm, VTy, Val
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                                                                       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L05_pruning/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/L05_pruning/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L06_string/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Raw`
[INFO] [stdout]  --> src/L06_string/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L06_string/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stdout]  --> src/L06_string/elaboration.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     cxt::NameOrigin, empty_span, lvl2ix, parser::syntax::{Decl, Either, Icit, Raw}, Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                                                                                     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L06_string/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/L06_string/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07_sum_type/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Pattern`
[INFO] [stdout]  --> src/L07_sum_type/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L07_sum_type/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07_sum_type/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07_sum_type/elaboration.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{list::List, parser_lib::Span, L07_sum_type::{parser::syntax::Pattern, pattern_match::Compiler, PatternDetail}};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stdout]  --> src/L07_sum_type/elaboration.rs:8:41
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stdout]   |                                         ^^
[INFO] [stdout] 9 |     cxt::NameOrigin,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07_sum_type/parser/syntax.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07_sum_type/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/L07_sum_type/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07a_depend_pm/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pattern` and `Raw`
[INFO] [stdout]  --> src/L07a_depend_pm/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L07a_depend_pm/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L07a_depend_pm/cxt.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L07a_depend_pm/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07a_depend_pm/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07a_depend_pm/elaboration.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix`, `PatternDetail`, `Pattern`, and `cxt::NameOrigin`
[INFO] [stdout]   --> src/L07a_depend_pm/elaboration.rs:8:41
[INFO] [stdout]    |
[INFO] [stdout]  8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stdout]    |                                         ^^
[INFO] [stdout]  9 |     cxt::NameOrigin, Lvl,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     empty_span, lvl2ix,
[INFO] [stdout] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stdout]    |                                               ^^^^^^^
[INFO] [stdout] 12 |     pattern_match::Compiler,
[INFO] [stdout] 13 |     PatternDetail,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07a_depend_pm/parser/syntax.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L07a_depend_pm/pattern_match.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{parser_lib::{Span, ToSpan}, L07a_depend_pm::{parser::syntax::Icit}};
[INFO] [stdout]   |                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07a_depend_pm/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stdout]  --> src/L07a_depend_pm/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L08_product_type/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pattern` and `Raw`
[INFO] [stdout]  --> src/L08_product_type/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L08_product_type/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L08_product_type/cxt.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L08_product_type/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L08_product_type/elaboration.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix`, `PatternDetail`, `Pattern`, and `cxt::NameOrigin`
[INFO] [stdout]   --> src/L08_product_type/elaboration.rs:8:41
[INFO] [stdout]    |
[INFO] [stdout]  8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stdout]    |                                         ^^
[INFO] [stdout]  9 |     cxt::NameOrigin, Lvl,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     empty_span, lvl2ix,
[INFO] [stdout] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stdout]    |                                               ^^^^^^^
[INFO] [stdout] 12 |     pattern_match::Compiler,
[INFO] [stdout] 13 |     PatternDetail,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `newKeyword` should have an upper camel case name
[INFO] [stdout]   --> src/L08_product_type/parser/lex.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     newKeyword,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `NewKeyword`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L08_product_type/parser/syntax.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::empty_span`
[INFO] [stdout]   --> src/L08_product_type/parser/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::empty_span;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L08_product_type/pattern_match.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::parser_lib::{Span, ToSpan};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L08_product_type/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stdout]  --> src/L08_product_type/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L09_mltt/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pattern` and `Raw`
[INFO] [stdout]  --> src/L09_mltt/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L09_mltt/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> src/L09_mltt/elaboration.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::max, collections::HashMap};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PatternDetail` and `Pattern`
[INFO] [stdout]   --> src/L09_mltt/elaboration.rs:11:47
[INFO] [stdout]    |
[INFO] [stdout] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stdout]    |                                               ^^^^^^^
[INFO] [stdout] 12 |     pattern_match::Compiler, MetaEntry,
[INFO] [stdout] 13 |     PatternDetail,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L09_mltt/pattern_match.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::parser_lib::{Span, ToSpan};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L09_mltt/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stdout]  --> src/L09_mltt/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L10_typeclass/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L10_typeclass/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pretty::pretty_tm` and `typeclass::Typ`
[INFO] [stdout]  --> src/L10_typeclass/unification.rs:6:88
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix, typeclass::Typ,
[INFO] [stdout]   |                                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm, typeclass::Assertion, Raw,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L11_macro/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Lvl`
[INFO] [stdout]  --> src/L11_macro/elaboration.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Lvl, Rc,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L11_macro/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pretty::pretty_tm` and `typeclass::Typ`
[INFO] [stdout]  --> src/L11_macro/unification.rs:6:88
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix, typeclass::Typ,
[INFO] [stdout]   |                                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm, typeclass::Assertion, Raw, Rc, Decl,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/main.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]   --> src/main.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 | use std::sync::{Arc, Mutex, RwLock, Condvar};
[INFO] [stdout]    |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam_channel::Sender`
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | use crossbeam_channel::Sender; // lsp_server 内部使用的是 crossbeam 或类似的 channel
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L09_mltt/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L08_product_type/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L11_macro/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L10_typeclass/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/parser_lib_resilient.rs:22:71
[INFO] [stdout]    |
[INFO] [stdout] 22 |         move |input, state: &mut S| self.parse(input, state).or_else(|e| rhs.parse(input, state))//TODO: err combine
[INFO] [stdout]    |                                                                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L03_holes/mod.rs:492:22
[INFO] [stdout]     |
[INFO] [stdout] 492 |             (Val::Pi(x, a, b_closure), Val::Pi(x_prime, a_prime, b_prime_closure)) => {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_prime`
[INFO] [stdout]    --> src/L03_holes/mod.rs:492:48
[INFO] [stdout]     |
[INFO] [stdout] 492 |             (Val::Pi(x, a, b_closure), Val::Pi(x_prime, a_prime, b_prime_closure)) => {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_prime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L03_holes/mod.rs:661:25
[INFO] [stdout]     |
[INFO] [stdout] 661 |             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `U`
[INFO] [stdout]     |
[INFO] [stdout] 661 -             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout] 661 +             (Raw::Hole, L03_holes::Val::U) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 661 |             (Raw::Hole, _a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]     |                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/L04_implicit/elaboration.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]    |                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `U`
[INFO] [stdout]    |
[INFO] [stdout] 87 -             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout] 87 +             (Raw::Hole, L04_implicit::Val::U) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 87 |             (Raw::Hole, _a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]    |                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L04_implicit/elaboration.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Raw::Lam(x, Either::Name(_), t) => {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L04_implicit/elaboration.rs:136:42
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Raw::Lam(x, Either::Name(_), t) => {
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_t`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:185:41
[INFO] [stdout]     |
[INFO] [stdout] 185 |             (Val::Lam(_, i, t_closure), t_t) => self.unify(
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_t_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:155:42
[INFO] [stdout]     |
[INFO] [stdout] 155 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:288:37
[INFO] [stdout]     |
[INFO] [stdout] 288 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:222:22
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:222:42
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L06_string/unification.rs:293:37
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_quote`
[INFO] [stdout]    --> src/L07_sum_type/cxt.rs:119:46
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn fake_bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stdout]     |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L07_sum_type/elaboration.rs:368:22
[INFO] [stdout]     |
[INFO] [stdout] 368 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L07_sum_type/elaboration.rs:368:42
[INFO] [stdout]     |
[INFO] [stdout] 368 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret_bind`
[INFO] [stdout]    --> src/L07_sum_type/pattern_match.rs:181:51
[INFO] [stdout]     |
[INFO] [stdout] 181 |                         .map(|(constr, item_typs, ret_bind)| {
[INFO] [stdout]     |                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret_bind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum_name`
[INFO] [stdout]    --> src/L07_sum_type/pattern_match.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |                 sum_name,
[INFO] [stdout]     |                 ^^^^^^^^ help: try ignoring the field: `sum_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:298:29
[INFO] [stdout]     |
[INFO] [stdout] 298 |             Val::Match(val, env, cases) => {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L07_sum_type/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/L07_sum_type/mod.rs:422:29
[INFO] [stdout]     |
[INFO] [stdout] 422 |             Val::Match(val, env, cases) => {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_quote`
[INFO] [stdout]    --> src/L07a_depend_pm/cxt.rs:121:46
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn fake_bind(&self, x: Span<String>, a_quote: Tm, a: Val, global_idx: Lvl) -> Self {
[INFO] [stdout]     |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/L07a_depend_pm/elaboration.rs:184:22
[INFO] [stdout]     |
[INFO] [stdout] 184 |                 let (ret, error) = compiler.compile(self, typ, &clause, cxt, self.eval(&cxt.env, tm.clone()))?;
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L07a_depend_pm/elaboration.rs:422:22
[INFO] [stdout]     |
[INFO] [stdout] 422 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L07a_depend_pm/elaboration.rs:422:42
[INFO] [stdout]     |
[INFO] [stdout] 422 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:365:37
[INFO] [stdout]     |
[INFO] [stdout] 365 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L07a_depend_pm/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_quote`
[INFO] [stdout]    --> src/L08_product_type/cxt.rs:121:46
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn fake_bind(&self, x: Span<String>, a_quote: Tm, a: Val, global_idx: Lvl) -> Self {
[INFO] [stdout]     |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/L08_product_type/elaboration.rs:183:22
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let (ret, error) = compiler.compile(self, typ, &clause, cxt, self.eval(&cxt.env, tm.clone()))?;
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L08_product_type/elaboration.rs:470:22
[INFO] [stdout]     |
[INFO] [stdout] 470 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L08_product_type/elaboration.rs:470:42
[INFO] [stdout]     |
[INFO] [stdout] 470 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:365:37
[INFO] [stdout]     |
[INFO] [stdout] 365 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L08_product_type/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L09_mltt/elaboration.rs:161:32
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         Val::U(x) => {//TODO:x?
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/L09_mltt/elaboration.rs:237:22
[INFO] [stdout]     |
[INFO] [stdout] 237 |                 let (ret, error) = compiler.compile(self, typ, &clause, cxt, self.eval(&cxt.env, tm.clone()))?;
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L09_mltt/elaboration.rs:537:42
[INFO] [stdout]     |
[INFO] [stdout] 537 |             Raw::Lam(x, Either::Name(_), t) => Err(Error(x.map(|_| "infer named lambda".to_owned()))),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]   --> src/L09_mltt/parser/syntax.rs:91:28
[INFO] [stdout]    |
[INFO] [stdout] 91 |             Raw::SumCase { typ, case_name, datas } => datas.last()
[INFO] [stdout]    |                            ^^^ help: try ignoring the field: `typ: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:355:37
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L09_mltt/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L10_typeclass/elaboration.rs:167:32
[INFO] [stdout]     |
[INFO] [stdout] 167 |                         Val::U(x) => {//TODO:x?
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]   --> src/L10_typeclass/parser/syntax.rs:94:41
[INFO] [stdout]    |
[INFO] [stdout] 94 |             Raw::SumCase { is_trait: _, typ, case_name, datas } => datas.last()
[INFO] [stdout]    |                                         ^^^ help: try ignoring the field: `typ: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/L10_typeclass/pattern_match.rs:218:29
[INFO] [stdout]     |
[INFO] [stdout] 218 |                         Err(e) => {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]    --> src/L10_typeclass/pattern_match.rs:248:15
[INFO] [stdout]     |
[INFO] [stdout] 248 |             [(var, typ, head_name, icit), heads_rest @ ..] => {
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:360:37
[INFO] [stdout]     |
[INFO] [stdout] 360 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icit`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_icit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `closure`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closure`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:29:31
[INFO] [stdout]    |
[INFO] [stdout] 29 |             Val::LiteralIntro(span) => todo!(),
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L10_typeclass/pretty.rs:179:28
[INFO] [stdout]     |
[INFO] [stdout] 179 |         Tm::Sum(span, tms, items, _) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_trait`
[INFO] [stdout]    --> src/L10_typeclass/pretty.rs:188:23
[INFO] [stdout]     |
[INFO] [stdout] 188 |         Tm::SumCase { is_trait, typ, case_name, datas: params } => format!(
[INFO] [stdout]     |                       ^^^^^^^^ help: try ignoring the field: `is_trait: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L11_macro/cxt.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let t = decl.insert(x.data.clone(), (x.to_span(), t, vt, a, va));
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L11_macro/elaboration.rs:167:32
[INFO] [stdout]     |
[INFO] [stdout] 167 |                         Val::U(x) => {//TODO:x?
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]    --> src/L11_macro/parser/syntax.rs:100:41
[INFO] [stdout]     |
[INFO] [stdout] 100 |             Raw::SumCase { is_trait: _, typ, case_name, datas } => datas.last()
[INFO] [stdout]     |                                         ^^^ help: try ignoring the field: `typ: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/L11_macro/pattern_match.rs:217:29
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         Err(e) => {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L11_macro/unification.rs:378:37
[INFO] [stdout]     |
[INFO] [stdout] 378 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:26:22
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icit`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_icit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `closure`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closure`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 |             Val::LiteralIntro(span) => todo!(),
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L11_macro/pretty.rs:180:28
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Tm::Sum(span, tms, items, _) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_trait`
[INFO] [stdout]    --> src/L11_macro/pretty.rs:189:23
[INFO] [stdout]     |
[INFO] [stdout] 189 |         Tm::SumCase { is_trait, typ, case_name, datas: params } => format!(
[INFO] [stdout]     |                       ^^^^^^^^ help: try ignoring the field: `is_trait: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_clone`
[INFO] [stdout]   --> src/main.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let sender_clone = client.connection.sender.clone(); // 假设 Connection sender 是可 Clone 的
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]    --> src/main.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 Message::Response(resp) => {
[INFO] [stdout]     |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:239:58
[INFO] [stdout]     |
[INFO] [stdout] 239 |                         Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:247:58
[INFO] [stdout]     |
[INFO] [stdout] 247 |                         Err(ExtractError::MethodMismatch(not)) =>(),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:255:58
[INFO] [stdout]     |
[INFO] [stdout] 255 |                         Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:263:58
[INFO] [stdout]     |
[INFO] [stdout] 263 |                         Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cvar`
[INFO] [stdout]    --> src/main.rs:853:28
[INFO] [stdout]     |
[INFO] [stdout] 853 |                 let (lock, cvar) = &*self.processed_signal;
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_cvar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:893:17
[INFO] [stdout]     |
[INFO] [stdout] 893 |             let mut ret = String::new();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/main.rs:893:17
[INFO] [stdout]     |
[INFO] [stdout] 893 |             let mut ret = String::new();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:996:9
[INFO] [stdout]     |
[INFO] [stdout] 996 |     let mut backend = Backend::new(Client { connection });
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::Infer::nf`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Tm` is more private than the item `L04_implicit::Infer::nf`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:32:1
[INFO] [stdout]     |
[INFO] [stdout]  32 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Tm` is more private than the item `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer`
[INFO] [stdout]   --> src/L04_implicit/elaboration.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer`
[INFO] [stdout]   --> src/L04_implicit/elaboration.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::env`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub env: Env,      // Used for evaluation
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::env` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Lvl` is more private than the item `L04_implicit::cxt::Cxt::lvl`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub lvl: Lvl,      // Used for unification
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::lvl` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Lvl` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct Lvl(u32);
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::types`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub types: Types,  // Used for raw name lookup and pretty printing
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::types` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::BD` is more private than the item `L04_implicit::cxt::Cxt::bds`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub bds: List<BD>, // Used for fresh meta creation
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::bds` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::BD` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum BD {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn bind(&self, x: Span<String>, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::new_binder`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new_binder(&self, x: Span<String>, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::cxt::Cxt::new_binder` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::define`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn define(&self, x: Span<String>, t: Val, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Lvl` is more private than the item `L04_implicit::unification::<impl L04_implicit::Infer>::unify`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::unification::<impl L04_implicit::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Lvl` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | struct Lvl(u32);
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::unification::<impl L04_implicit::Infer>::unify`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::unification::<impl L04_implicit::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::UnifyError` is more private than the item `L04_implicit::unification::<impl L04_implicit::Infer>::unify`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::unification::<impl L04_implicit::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:89:1
[INFO] [stdout]     |
[INFO] [stdout]  89 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::Infer::nf`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::Infer::nf`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout]  34 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout]  34 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::env`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub env: Env,      // Used for evaluation
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L05_pruning::cxt::Cxt::env` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::src_names`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub src_names: HashMap<String, (Lvl, VTy)>
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `L05_pruning::cxt::Cxt::src_names` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::cxt::Cxt::new_binder`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new_binder(&self, x: Span<String>, a_quote: Tm) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::new_binder` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::cxt::Cxt::define`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Val, a: Ty, va: VTy) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::define`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Val, a: Ty, va: VTy) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::unification::<impl L05_pruning::Infer>::unify`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::unification::<impl L05_pruning::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::UnifyError` is more private than the item `L05_pruning::unification::<impl L05_pruning::Infer>::unify`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::unification::<impl L05_pruning::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:91:1
[INFO] [stdout]     |
[INFO] [stdout]  91 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::syntax::Locals::Define::2`
[INFO] [stdout]   --> src/L05_pruning/syntax.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                       ^^ field `L05_pruning::syntax::Locals::Define::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::syntax::Locals::Define::3`
[INFO] [stdout]   --> src/L05_pruning/syntax.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                           ^^ field `L05_pruning::syntax::Locals::Define::3` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::syntax::Locals::Bind::2`
[INFO] [stdout]   --> src/L05_pruning/syntax.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Bind(Box<Locals>, Span<String>, Ty),
[INFO] [stdout]    |                                     ^^ field `L05_pruning::syntax::Locals::Bind::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::DeclTm::Println::0`
[INFO] [stdout]   --> src/L06_string/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Println(Tm),
[INFO] [stdout]    |             ^^ field `L06_string::DeclTm::Println::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::Infer::nf`
[INFO] [stdout]    --> src/L06_string/mod.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::Infer::nf`
[INFO] [stdout]    --> src/L06_string/mod.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::elaboration::<impl L06_string::Infer>::infer`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub fn infer(&mut self, cxt: &Cxt, t: Decl) -> Result<(DeclTm, Val, Cxt), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::elaboration::<impl L06_string::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::elaboration::<impl L06_string::Infer>::infer_expr`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn infer_expr(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Rc<Val>), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::elaboration::<impl L06_string::Infer>::infer_expr` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::elaboration::<impl L06_string::Infer>::infer_expr`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn infer_expr(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Rc<Val>), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::elaboration::<impl L06_string::Infer>::infer_expr` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::env`
[INFO] [stdout]   --> src/L06_string/cxt.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub env: Env, // Used for evaluation
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L06_string::cxt::Cxt::env` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::src_names`
[INFO] [stdout]   --> src/L06_string/cxt.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub src_names: HashMap<String, (Lvl, Rc<VTy>)>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `L06_string::cxt::Cxt::src_names` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L06_string/cxt.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Rc<Val>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L06_string/cxt.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Rc<Val>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::cxt::Cxt::new_binder`
[INFO] [stdout]   --> src/L06_string/cxt.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn new_binder(&self, x: Span<String>, a_quote: Tm) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::new_binder` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::cxt::Cxt::define`
[INFO] [stdout]   --> src/L06_string/cxt.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Rc<Val>, a: Ty, va: Rc<VTy>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::define`
[INFO] [stdout]   --> src/L06_string/cxt.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Rc<Val>, a: Ty, va: Rc<VTy>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::unification::<impl L06_string::Infer>::unify`
[INFO] [stdout]    --> src/L06_string/unification.rs:429:5
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn unify(&mut self, l: Lvl, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::unification::<impl L06_string::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::UnifyError` is more private than the item `L06_string::unification::<impl L06_string::Infer>::unify`
[INFO] [stdout]    --> src/L06_string/unification.rs:429:5
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn unify(&mut self, l: Lvl, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::unification::<impl L06_string::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::syntax::Locals::Define::2`
[INFO] [stdout]   --> src/L06_string/syntax.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                       ^^ field `L06_string::syntax::Locals::Define::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::syntax::Locals::Define::3`
[INFO] [stdout]   --> src/L06_string/syntax.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                           ^^ field `L06_string::syntax::Locals::Define::3` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::syntax::Locals::Bind::2`
[INFO] [stdout]   --> src/L06_string/syntax.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Bind(Box<Locals>, Span<String>, Ty),
[INFO] [stdout]    |                                     ^^ field `L06_string::syntax::Locals::Bind::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L07_sum_type::UnifyError` is more private than the item `L07_sum_type::unification::<impl L07_sum_type::Infer>::unify`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L07_sum_type::unification::<impl L07_sum_type::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L07_sum_type::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L07_sum_type/mod.rs:171:1
[INFO] [stdout]     |
[INFO] [stdout] 171 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L07a_depend_pm::UnifyError` is more private than the item `L07a_depend_pm::unification::<impl L07a_depend_pm::Infer>::unify`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:514:5
[INFO] [stdout]     |
[INFO] [stdout] 514 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L07a_depend_pm::unification::<impl L07a_depend_pm::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L07a_depend_pm::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L07a_depend_pm/mod.rs:175:1
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L08_product_type::UnifyError` is more private than the item `L08_product_type::unification::<impl L08_product_type::Infer>::unify`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:514:5
[INFO] [stdout]     |
[INFO] [stdout] 514 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L08_product_type::unification::<impl L08_product_type::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L08_product_type::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L08_product_type/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::invert`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:73:5
[INFO] [stdout]     |
[INFO] [stdout]  73 | /     pub fn invert(
[INFO] [stdout]  74 | |         &self,
[INFO] [stdout]  75 | |         gamma: Lvl,
[INFO] [stdout]  76 | |         sp: Spine,
[INFO] [stdout]  77 | |     ) -> Result<(PartialRenaming, Option<Pruning>), UnifyError> {
[INFO] [stdout]     | |_______________________________________________________________^ method `L09_mltt::unification::<impl L09_mltt::Infer>::invert` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::prune_ty`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn prune_ty(&mut self, pr: &Pruning, a: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L09_mltt::unification::<impl L09_mltt::Infer>::prune_ty` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::rename`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn rename(&mut self, pren: &PartialRenaming, t: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L09_mltt::unification::<impl L09_mltt::Infer>::rename` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::unify`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L09_mltt::unification::<impl L09_mltt::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::invert`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:73:5
[INFO] [stdout]     |
[INFO] [stdout]  73 | /     pub fn invert(
[INFO] [stdout]  74 | |         &self,
[INFO] [stdout]  75 | |         gamma: Lvl,
[INFO] [stdout]  76 | |         sp: &Spine,
[INFO] [stdout]  77 | |     ) -> Result<(PartialRenaming, Option<Pruning>), UnifyError> {
[INFO] [stdout]     | |_______________________________________________________________^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::invert` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::prune_ty`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn prune_ty(&mut self, pr: &Pruning, a: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::prune_ty` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::rename`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 241 |     pub fn rename(&mut self, pren: &PartialRenaming, t: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::rename` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::solve_multi_trait`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:420:5
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn solve_multi_trait(&mut self, cxt: &Cxt, m: MetaVar) -> Result<(), UnifyError>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::solve_multi_trait` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::unify`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:569:5
[INFO] [stdout]     |
[INFO] [stdout] 569 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::invert`
[INFO] [stdout]    --> src/L11_macro/unification.rs:74:5
[INFO] [stdout]     |
[INFO] [stdout]  74 | /     pub fn invert(
[INFO] [stdout]  75 | |         &self,
[INFO] [stdout]  76 | |         gamma: Lvl,
[INFO] [stdout]  77 | |         decl: &Decl,
[INFO] [stdout]  78 | |         sp: &Spine,
[INFO] [stdout]  79 | |     ) -> Result<(PartialRenaming, Option<Pruning>), UnifyError> {
[INFO] [stdout]     | |_______________________________________________________________^ method `L11_macro::unification::<impl L11_macro::Infer>::invert` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::prune_ty`
[INFO] [stdout]    --> src/L11_macro/unification.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub fn prune_ty(&mut self, decl: &Decl, pr: &Pruning, a: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::prune_ty` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::rename`
[INFO] [stdout]    --> src/L11_macro/unification.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn rename(&mut self, decl: &Decl, pren: &PartialRenaming, t: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::rename` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::solve_multi_trait`
[INFO] [stdout]    --> src/L11_macro/unification.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 441 |     pub fn solve_multi_trait(&mut self, cxt: &Cxt, m: MetaVar) -> Result<(), UnifyError>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::solve_multi_trait` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::unify`
[INFO] [stdout]    --> src/L11_macro/unification.rs:607:5
[INFO] [stdout]     |
[INFO] [stdout] 607 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty`, `diagnostic`, `error`, `warning`, `info`, and `note` are never used
[INFO] [stdout]   --> src/parser_lib.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T> Span<T> {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn diagnostic<U: AsRef<str>>(&self, severity: Severity, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn error<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn warning<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn info<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn note<U: AsRef<str>>(&self, msg: U) -> (PathId, u32, u32, String) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Severity` is never used
[INFO] [stdout]    --> src/parser_lib.rs:113:10
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum Severity {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Diagnostic` is never constructed
[INFO] [stdout]    --> src/parser_lib.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_note` is never used
[INFO] [stdout]    --> src/parser_lib.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Diagnostic {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 129 |     pub fn with_note(mut self, note: (PathId, u32, u32, String)) -> Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser_lib.rs:284:10
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub enum Maybe<T, E> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `map`, `and_then`, and `unwrap_or_else` are never used
[INFO] [stdout]    --> src/parser_lib.rs:301:12
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 301 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn unwrap_or_else<F>(self, f: F) -> T
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `raise_err` is never used
[INFO] [stdout]    --> src/parser_lib.rs:331:12
[INFO] [stdout]     |
[INFO] [stdout] 330 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 331 |     pub fn raise_err(self, err: &mut Vec<Diagnostic>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe` is never used
[INFO] [stdout]    --> src/parser_lib.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub fn maybe<'a: 'b, 'b, T, P, N: 'a + Copy, E: Copy>(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser_lib.rs:411:11
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub trait AstDebug {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Input` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub type Input<'a> = Span<&'a str>;
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:208:10
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub enum Maybe<T, E> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `map`, `and_then`, and `unwrap_or_else` are never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 225 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn unwrap_or_else<F>(self, f: F) -> T
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `raise_err` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:255:12
[INFO] [stdout]     |
[INFO] [stdout] 254 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 255 |     pub fn raise_err(self, err: &mut Vec<Diagnostic>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:335:11
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub trait AstDebug {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `filter` is never used
[INFO] [stdout]   --> src/list.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl<T: Clone> List<T> {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 70 |     pub fn filter<F>(&self, f: F) -> List<T>
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `get_by_key2` are never used
[INFO] [stdout]   --> src/bimap.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | / impl<K1, K2, V> BiMap<K1, K2, V>
[INFO] [stdout] 10 | | where
[INFO] [stdout] 11 | |     K1: std::hash::Hash + Eq + Clone,
[INFO] [stdout] 12 | |     K2: std::hash::Hash + Eq + Clone,
[INFO] [stdout] 13 | |     V: Clone,
[INFO] [stdout]    | |_____________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |       pub fn len(&self) -> usize {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |       pub fn get_by_key2(&self, key2: &K2) -> Option<&V> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/L01_eval/parser/lex.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Token` is never used
[INFO] [stdout]   --> src/L01_eval/parser/lex.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub type Token<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEYWORD` is never used
[INFO] [stdout]   --> src/L01_eval/parser/lex.rs:52:7
[INFO] [stdout]    |
[INFO] [stdout] 52 | const KEYWORD: [(&str, TokenKind); 12] = [
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP` is never used
[INFO] [stdout]   --> src/L01_eval/parser/lex.rs:67:7
[INFO] [stdout]    |
[INFO] [stdout] 67 | const OP: [(&str, TokenKind); 16] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L01_eval/parser/lex.rs:86:10
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ident` is never used
[INFO] [stdout]   --> src/L01_eval/parser/lex.rs:88:4
[INFO] [stdout]    |
[INFO] [stdout] 88 | fn ident(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]    --> src/L01_eval/parser/lex.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn brace(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op` is never used
[INFO] [stdout]    --> src/L01_eval/parser/lex.rs:128:4
[INFO] [stdout]     |
[INFO] [stdout] 128 | fn op(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]     |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]    --> src/L01_eval/parser/lex.rs:149:8
[INFO] [stdout]     |
[INFO] [stdout] 149 | pub fn lex(input: Span<&str>) -> Option<(Input<'_>, Vec<Token<'_>>)> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/L02_tyck/parser/lex.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Token` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub type Token<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEYWORD` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const KEYWORD: [(&str, TokenKind); 2] = [
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const OP: [(&str, TokenKind); 7] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ident` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:47:4
[INFO] [stdout]    |
[INFO] [stdout] 47 | fn ident(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:71:4
[INFO] [stdout]    |
[INFO] [stdout] 71 | fn brace(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:79:4
[INFO] [stdout]    |
[INFO] [stdout] 79 | fn op(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]    --> src/L02_tyck/parser/lex.rs:100:8
[INFO] [stdout]     |
[INFO] [stdout] 100 | pub fn lex(input: Span<&str>) -> Option<(Input<'_>, Vec<Token<'_>>)> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetaVar` is never constructed
[INFO] [stdout]   --> src/L03_holes/mod.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout] 10 | struct MetaVar(u32);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetaEntry` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum MetaEntry {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ix` is never constructed
[INFO] [stdout]   --> src/L03_holes/mod.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | struct Ix(u32);
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:22:6
[INFO] [stdout]    |
[INFO] [stdout] 22 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tm` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum Tm {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `pretty` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:40:8
[INFO] [stdout]    |
[INFO] [stdout] 39 | impl Tm {
[INFO] [stdout]    | ------- method in this implementation
[INFO] [stdout] 40 |     fn pretty(&self, names: List<(Span<String>, Val)>) -> String {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Ty` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:66:6
[INFO] [stdout]    |
[INFO] [stdout] 66 | type Ty = Tm;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lvl` is never constructed
[INFO] [stdout]   --> src/L03_holes/mod.rs:69:8
[INFO] [stdout]    |
[INFO] [stdout] 69 | struct Lvl(u32);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Env` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:78:6
[INFO] [stdout]    |
[INFO] [stdout] 78 | type Env = List<Val>;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Spine` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:79:6
[INFO] [stdout]    |
[INFO] [stdout] 79 | type Spine = List<Val>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Closure` is never constructed
[INFO] [stdout]   --> src/L03_holes/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 82 | struct Closure(Env, Box<Tm>);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Val` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:85:6
[INFO] [stdout]    |
[INFO] [stdout] 85 | enum Val {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VTy` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:93:6
[INFO] [stdout]    |
[INFO] [stdout] 93 | type VTy = Val;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `vvar` and `vmeta` are never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:96:8
[INFO] [stdout]     |
[INFO] [stdout]  95 | impl Val {
[INFO] [stdout]     | -------- associated functions in this implementation
[INFO] [stdout]  96 |     fn vvar(x: Lvl) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 100 |     fn vmeta(m: MetaVar) -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lvl2ix` is never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:105:4
[INFO] [stdout]     |
[INFO] [stdout] 105 | fn lvl2ix(l: Lvl, x: Lvl) -> Ix {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartialRenaming` is never constructed
[INFO] [stdout]    --> src/L03_holes/mod.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | struct PartialRenaming {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lift` is never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:118:4
[INFO] [stdout]     |
[INFO] [stdout] 118 | fn lift(pr: PartialRenaming) -> PartialRenaming {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnifyError` is never constructed
[INFO] [stdout]    --> src/L03_holes/mod.rs:132:8
[INFO] [stdout]     |
[INFO] [stdout] 132 | struct UnifyError;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_span` is never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn empty_span<T>(data: T) -> Span<T> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Error` is never constructed
[INFO] [stdout]    --> src/L03_holes/mod.rs:144:12
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct Error(String);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lams` is never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:146:4
[INFO] [stdout]     |
[INFO] [stdout] 146 | fn lams(l: Lvl, t: Tm) -> Tm {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:158:6
[INFO] [stdout]     |
[INFO] [stdout] 158 | type Types = List<(Span<String>, Val)>;
[INFO] [stdout]     |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cxt` is never constructed
[INFO] [stdout]    --> src/L03_holes/mod.rs:161:8
[INFO] [stdout]     |
[INFO] [stdout] 161 | struct Cxt {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty`, `bind`, and `define` are never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:169:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | impl Cxt {
[INFO] [stdout]     | -------- associated items in this implementation
[INFO] [stdout] 169 |     fn empty() -> Self {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     fn bind(&self, x: Span<String>, a: Val) -> Self {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     fn define(&self, x: Span<String>, t: Val, a: Val) -> Self {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Infer` is never constructed
[INFO] [stdout]    --> src/L03_holes/mod.rs:198:8
[INFO] [stdout]     |
[INFO] [stdout] 198 | struct Infer {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:203:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | impl Infer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 203 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 206 |     fn fresh_meta(&mut self, cxt: &Cxt) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 210 |     fn solve(&mut self, gamma: Lvl, m: MetaVar, sp: Spine, rhs: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn lookup_meta(&self, m: MetaVar) -> &MetaEntry {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 228 |     fn force(&self, t: Val) -> Val {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 238 |     fn v_meta(&self, m: MetaVar) -> Val {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 245 |     fn closure_apply(&self, closure: &Closure, u: Val) -> Val {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 250 |     fn v_app(&self, t: Val, u: Val) -> Val {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 259 |     fn v_app_sp(&self, t: Val, spine: Spine) -> Val {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 267 |     fn v_app_bds(&self, env: &Env, v: Val, bds: &List<BD>) -> Val {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 282 |     fn invert_go(&self, sp: Spine) -> Result<(Lvl, HashMap<u32, Lvl>), UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 297 |     fn invert(&self, gamma: Lvl, sp: Spine) -> Result<PartialRenaming, UnifyError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     fn rename_go_sp(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 336 |     fn rename_go(&self, m: MetaVar, pren: &PartialRenaming, t: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 371 |     fn rename(&self, m: MetaVar, pren: PartialRenaming, v: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 376 |     fn eval(&self, env: &Env, tm: Tm) -> Val {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 393 |     fn quote_sp(&self, l: Lvl, t: Tm, spine: Spine) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 399 |     fn quote(&self, l: Lvl, t: Val) -> Tm {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 423 |     fn close_val(&self, cxt: &Cxt, t: Val) -> Closure {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 427 |     fn unify_catch(&mut self, cxt: &Cxt, t: Val, t_prime: Val) -> Result<(), Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 447 |     fn unify_sp(&mut self, l: Lvl, sp: &List<Val>, sp_prime: &List<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 458 |     fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 520 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 632 |     fn check(&mut self, cxt: &Cxt, t: Raw, a: Val) -> Result<Tm, Error> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser` is never used
[INFO] [stdout]  --> src/L03_holes/parser/mod.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn parser(input: &str, id: u32) -> Option<Raw> {
[INFO] [stdout]   |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Raw` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:20:10
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub enum Raw {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kw` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn kw<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<()>> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:37:4
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn string<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<String>> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paren` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:44:4
[INFO] [stdout]    |
[INFO] [stdout] 44 | fn paren<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_atom` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn p_atom<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_binder` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:60:4
[INFO] [stdout]    |
[INFO] [stdout] 60 | fn p_binder<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Span<String>)> {
[INFO] [stdout]    |    ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_spine` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:64:4
[INFO] [stdout]    |
[INFO] [stdout] 64 | fn p_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_lam` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn p_lam<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_pi` is never used
[INFO] [stdout]   --> src/L03_holes/parser/mod.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn p_pi<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fun_or_spine` is never used
[INFO] [stdout]    --> src/L03_holes/parser/mod.rs:108:4
[INFO] [stdout]     |
[INFO] [stdout] 108 | fn fun_or_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_let` is never used
[INFO] [stdout]    --> src/L03_holes/parser/mod.rs:117:4
[INFO] [stdout]     |
[INFO] [stdout] 117 | fn p_let<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_raw` is never used
[INFO] [stdout]    --> src/L03_holes/parser/mod.rs:134:4
[INFO] [stdout]     |
[INFO] [stdout] 134 | fn p_raw<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/L03_holes/parser/lex.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Token` is never used
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub type Token<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEYWORD` is never used
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const KEYWORD: [(&str, TokenKind); 2] = [("let", LetKeyword), ("U", UKeyword)];
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP` is never used
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const OP: [(&str, TokenKind); 9] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:48:10
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ident` is never used
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:50:4
[INFO] [stdout]    |
[INFO] [stdout] 50 | fn ident(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn brace(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op` is never used
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn op(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]    --> src/L03_holes/parser/lex.rs:103:8
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub fn lex(input: Span<&str>) -> Option<(Input<'_>, Vec<Token<'_>>)> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetaVar` is never constructed
[INFO] [stdout]   --> src/L04_implicit/mod.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | struct MetaVar(u32);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetaEntry` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | enum MetaEntry {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ix` is never constructed
[INFO] [stdout]   --> src/L04_implicit/mod.rs:23:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | struct Ix(u32);
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:26:6
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tm` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum Tm {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Ty` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:43:6
[INFO] [stdout]    |
[INFO] [stdout] 43 | type Ty = Tm;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lvl` is never constructed
[INFO] [stdout]   --> src/L04_implicit/mod.rs:46:8
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct Lvl(u32);
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Env` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:55:6
[INFO] [stdout]    |
[INFO] [stdout] 55 | type Env = List<Val>;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Spine` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:56:6
[INFO] [stdout]    |
[INFO] [stdout] 56 | type Spine = List<(Val, Icit)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Closure` is never constructed
[INFO] [stdout]   --> src/L04_implicit/mod.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | struct Closure(Env, Box<Tm>);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Val` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:6
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VTy` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:70:6
[INFO] [stdout]    |
[INFO] [stdout] 70 | type VTy = Val;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `vvar` and `vmeta` are never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:73:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl Val {
[INFO] [stdout]    | -------- associated functions in this implementation
[INFO] [stdout] 73 |     fn vvar(x: Lvl) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn vmeta(m: MetaVar) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lvl2ix` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:82:4
[INFO] [stdout]    |
[INFO] [stdout] 82 | fn lvl2ix(l: Lvl, x: Lvl) -> Ix {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnifyError` is never constructed
[INFO] [stdout]   --> src/L04_implicit/mod.rs:89:8
[INFO] [stdout]    |
[INFO] [stdout] 89 | struct UnifyError;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_span` is never used
[INFO] [stdout]   --> src/L04_implicit/mod.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn empty_span<T>(data: T) -> Span<T> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Error` is never constructed
[INFO] [stdout]    --> src/L04_implicit/mod.rs:101:12
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct Error(String);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Infer` is never constructed
[INFO] [stdout]    --> src/L04_implicit/mod.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct Infer {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/L04_implicit/mod.rs:108:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl Infer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 108 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     fn fresh_meta(&mut self, cxt: &Cxt) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 115 |     fn lookup_meta(&self, m: MetaVar) -> &MetaEntry {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 118 |     fn force(&self, t: Val) -> Val {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn v_meta(&self, m: MetaVar) -> Val {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn closure_apply(&self, closure: &Closure, u: Val) -> Val {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 140 |     fn v_app(&self, t: Val, u: Val, i: Icit) -> Val {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn v_app_sp(&self, t: Val, spine: Spine) -> Val {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     fn v_app_bds(&self, env: &Env, v: Val, bds: &List<BD>) -> Val {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 176 |     fn eval(&self, env: &Env, tm: Tm) -> Val {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     fn quote_sp(&self, l: Lvl, t: Tm, spine: Spine) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn quote(&self, l: Lvl, t: Val) -> Tm {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 225 |     fn close_val(&self, cxt: &Cxt, t: Val) -> Closure {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn unify_catch(&mut self, cxt: &Cxt, t: Val, t_prime: Val) -> Result<(), Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parser(input: &str, id: u32) -> Option<Raw> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kw` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn kw<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<()>> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn string<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<String>> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paren` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn paren<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn brace<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_atom` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn p_atom<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_arg` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn p_arg<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], (Either, Raw))> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_spine` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn p_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_bind` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn p_bind<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Span<String>)> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_lam_binder` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/mod.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn p_lam_binder<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], (Span<String>, Either))> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_lam` is never used
[INFO] [stdout]    --> src/L04_implicit/parser/mod.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn p_lam<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_pi_binder` is never used
[INFO] [stdout]    --> src/L04_implicit/parser/mod.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn p_pi_binder<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], (Vec<Span<String>>, Raw, Icit))> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_pi` is never used
[INFO] [stdout]    --> src/L04_implicit/parser/mod.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn p_pi<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fun_or_spine` is never used
[INFO] [stdout]    --> src/L04_implicit/parser/mod.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn fun_or_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_let` is never used
[INFO] [stdout]    --> src/L04_implicit/parser/mod.rs:167:4
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn p_let<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_raw` is never used
[INFO] [stdout]    --> src/L04_implicit/parser/mod.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn p_raw<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/L04_implicit/parser/lex.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Token` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type Token<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEYWORD` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const KEYWORD: [(&str, TokenKind); 2] = [("let", LetKeyword), ("U", UKeyword)];
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const OP: [(&str, TokenKind); 11] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ident` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn ident(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn brace(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn op(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]    --> src/L04_implicit/parser/lex.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn lex(input: Span<&str>) -> Option<(Input<'_>, Vec<Token<'_>>)> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Icit` is never used
[INFO] [stdout]  --> src/L04_implicit/parser/syntax.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Icit {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Either {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Raw` is never used
[INFO] [stdout]   --> src/L04_implicit/parser/syntax.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Raw {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]   --> src/L04_implicit/elaboration.rs:10:8
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Infer {
[INFO] [stdout]    | ---------- methods in this implementation
[INFO] [stdout] 10 |     fn insert_go(&mut self, cxt: &Cxt, t: Tm, va: Val) -> (Tm, VTy) {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     fn insert_t(&mut self, cxt: &Cxt, act: Result<(Tm, VTy), Error>) -> Result<(Tm, VTy), Error> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     fn insert(&mut self, cxt: &Cxt, act: Result<(Tm, VTy), Error>) -> Result<(Tm, VTy), Error> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     fn insert_until_go(&mut self, cxt: &Cxt, name: Span<String>, t: Tm, va: Val) -> Result<(Tm, VTy), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     fn insert_until_name(&mut self, cxt: &Cxt, name: Span<String>, act: Result<(Tm, VTy), Error>) -> Result<(Tm, VTy), Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn check(&mut self, cxt: &Cxt, t: Raw, a: Val) -> Result<Tm, Error> {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 98 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]  --> src/L04_implicit/cxt.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum NameOrigin {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:10:6
[INFO] [stdout]    |
[INFO] [stdout] 10 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cxt` is never constructed
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Cxt {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty`, `bind`, `new_binder`, and `define` are never used
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | impl Cxt {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 21 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub fn bind(&self, x: Span<String>, a: Val) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub fn new_binder(&self, x: Span<String>, a: Val) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 |     pub fn define(&self, x: Span<String>, t: Val, a: Val) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartialRenaming` is never constructed
[INFO] [stdout]   --> src/L04_implicit/unification.rs:12:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | struct PartialRenaming {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lift` is never used
[INFO] [stdout]   --> src/L04_implicit/unification.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn lift(pr: PartialRenaming) -> PartialRenaming {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lams` is never used
[INFO] [stdout]   --> src/L04_implicit/unification.rs:29:4
[INFO] [stdout]    |
[INFO] [stdout] 29 | fn lams(l: List<Icit>, t: Tm) -> Tm {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/L04_implicit/unification.rs:46:8
[INFO] [stdout]     |
[INFO] [stdout]  45 | impl Infer {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  46 |     fn invert_go(&self, sp: Spine) -> Result<(Lvl, HashMap<u32, Lvl>), UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn invert(&self, gamma: Lvl, sp: Spine) -> Result<PartialRenaming, UnifyError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     fn rename_go_sp(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |     fn rename_go(&self, m: MetaVar, pren: &PartialRenaming, t: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn rename(&self, m: MetaVar, pren: PartialRenaming, v: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 126 |     fn solve(&mut self, gamma: Lvl, m: MetaVar, sp: Spine, rhs: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 |     fn unify_sp(&mut self, l: Lvl, sp: &Spine, sp_prime: &Spine) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 160 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetaVar` is never constructed
[INFO] [stdout]   --> src/L05_pruning/mod.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | struct MetaVar(u32);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetaEntry` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:19:6
[INFO] [stdout]    |
[INFO] [stdout] 19 | enum MetaEntry {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ix` is never constructed
[INFO] [stdout]   --> src/L05_pruning/mod.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Ix(u32);
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tm` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:6
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Ty` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:45:6
[INFO] [stdout]    |
[INFO] [stdout] 45 | type Ty = Tm;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lvl` is never constructed
[INFO] [stdout]   --> src/L05_pruning/mod.rs:48:12
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub struct Lvl(u32);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Env` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:57:6
[INFO] [stdout]    |
[INFO] [stdout] 57 | type Env = List<Val>;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Spine` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:58:6
[INFO] [stdout]    |
[INFO] [stdout] 58 | type Spine = List<(Val, Icit)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Closure` is never constructed
[INFO] [stdout]   --> src/L05_pruning/mod.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | struct Closure(Env, Box<Tm>);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Val` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:6
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VTy` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | type VTy = Val;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `vvar` and `vmeta` are never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:75:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | impl Val {
[INFO] [stdout]    | -------- associated functions in this implementation
[INFO] [stdout] 75 |     fn vvar(x: Lvl) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     fn vmeta(m: MetaVar) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lvl2ix` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:84:4
[INFO] [stdout]    |
[INFO] [stdout] 84 | fn lvl2ix(l: Lvl, x: Lvl) -> Ix {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnifyError` is never constructed
[INFO] [stdout]   --> src/L05_pruning/mod.rs:91:8
[INFO] [stdout]    |
[INFO] [stdout] 91 | struct UnifyError;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_span` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:93:4
[INFO] [stdout]    |
[INFO] [stdout] 93 | fn empty_span<T>(data: T) -> Span<T> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Error` is never constructed
[INFO] [stdout]    --> src/L05_pruning/mod.rs:103:12
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct Error(String);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Infer` is never constructed
[INFO] [stdout]    --> src/L05_pruning/mod.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Infer {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/L05_pruning/mod.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl Infer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 110 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 113 |     fn new_meta(&mut self, a: VTy) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     fn fresh_meta(&mut self, cxt: &Cxt, a: VTy) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn lookup_meta(&self, m: MetaVar) -> &MetaEntry {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 125 |     fn force(&self, t: Val) -> Val {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn v_meta(&self, m: MetaVar) -> Val {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 142 |     fn closure_apply(&self, closure: &Closure, u: Val) -> Val {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 147 |     fn v_app(&self, t: Val, u: Val, i: Icit) -> Val {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn v_app_sp(&self, t: Val, spine: Spine) -> Val {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn v_app_pruning(&self, env: &Env, v: Val, pr: &Pruning) -> Val {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     fn eval(&self, env: &Env, tm: Tm) -> Val {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     fn quote_sp(&self, l: Lvl, t: Tm, spine: Spine) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |     fn quote(&self, l: Lvl, t: Val) -> Tm {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn close_val(&self, cxt: &Cxt, t: Val) -> Closure {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     fn unify_catch(&mut self, cxt: &Cxt, t: Val, t_prime: Val) -> Result<(), Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parser(input: &str, id: u32) -> Option<Raw> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kw` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:21:4
[INFO] [stdout]    |
[INFO] [stdout] 21 | fn kw<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<()>> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:28:4
[INFO] [stdout]    |
[INFO] [stdout] 28 | fn string<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<String>> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paren` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn paren<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn brace<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_atom` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn p_atom<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_arg` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:58:4
[INFO] [stdout]    |
[INFO] [stdout] 58 | fn p_arg<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], (Either, Raw))> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_spine` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:76:4
[INFO] [stdout]    |
[INFO] [stdout] 76 | fn p_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_bind` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn p_bind<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Span<String>)> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_lam_binder` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/mod.rs:91:4
[INFO] [stdout]    |
[INFO] [stdout] 91 | fn p_lam_binder<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], (Span<String>, Either))> {
[INFO] [stdout]    |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_lam` is never used
[INFO] [stdout]    --> src/L05_pruning/parser/mod.rs:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | fn p_lam<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_pi_binder` is never used
[INFO] [stdout]    --> src/L05_pruning/parser/mod.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn p_pi_binder<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], (Vec<Span<String>>, Raw, Icit))> {
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_pi` is never used
[INFO] [stdout]    --> src/L05_pruning/parser/mod.rs:137:4
[INFO] [stdout]     |
[INFO] [stdout] 137 | fn p_pi<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fun_or_spine` is never used
[INFO] [stdout]    --> src/L05_pruning/parser/mod.rs:158:4
[INFO] [stdout]     |
[INFO] [stdout] 158 | fn fun_or_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_let` is never used
[INFO] [stdout]    --> src/L05_pruning/parser/mod.rs:167:4
[INFO] [stdout]     |
[INFO] [stdout] 167 | fn p_let<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_raw` is never used
[INFO] [stdout]    --> src/L05_pruning/parser/mod.rs:183:4
[INFO] [stdout]     |
[INFO] [stdout] 183 | fn p_raw<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/L05_pruning/parser/lex.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Token` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:32:10
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub type Token<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEYWORD` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const KEYWORD: [(&str, TokenKind); 2] = [("let", LetKeyword), ("U", UKeyword)];
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const OP: [(&str, TokenKind); 11] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:52:10
[INFO] [stdout]    |
[INFO] [stdout] 52 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ident` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:54:4
[INFO] [stdout]    |
[INFO] [stdout] 54 | fn ident(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:81:4
[INFO] [stdout]    |
[INFO] [stdout] 81 | fn brace(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:89:4
[INFO] [stdout]    |
[INFO] [stdout] 89 | fn op(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]    --> src/L05_pruning/parser/lex.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub fn lex(input: Span<&str>) -> Option<(Input<'_>, Vec<Token<'_>>)> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Icit` is never used
[INFO] [stdout]  --> src/L05_pruning/parser/syntax.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Icit {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Either {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Raw` is never used
[INFO] [stdout]   --> src/L05_pruning/parser/syntax.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Raw {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:10:8
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl Infer {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  10 |     fn insert_go(&mut self, cxt: &Cxt, t: Tm, va: Val) -> (Tm, VTy) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  24 |     fn insert_t(&mut self, cxt: &Cxt, act: Result<(Tm, VTy), Error>) -> Result<(Tm, VTy), Error> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn insert(&mut self, cxt: &Cxt, act: Result<(Tm, VTy), Error>) -> Result<(Tm, VTy), Error> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  33 |     fn insert_until_go(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  58 |     fn insert_until_name(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     fn check(&mut self, cxt: &Cxt, t: Raw, a: Val) -> Result<Tm, Error> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]  --> src/L05_pruning/cxt.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum NameOrigin {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cxt` is never constructed
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct Cxt {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `empty`, `bind`, `new_binder`, and `define` are never used
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Cxt {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn new_binder(&self, x: Span<String>, a_quote: Tm) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Val, a: Ty, va: VTy) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartialRenaming` is never constructed
[INFO] [stdout]   --> src/L05_pruning/unification.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PartialRenaming {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lift` is never used
[INFO] [stdout]   --> src/L05_pruning/unification.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn lift(pr: &PartialRenaming) -> PartialRenaming {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip` is never used
[INFO] [stdout]   --> src/L05_pruning/unification.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn skip(pr: &PartialRenaming) -> PartialRenaming {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpinePruneStatus` is never used
[INFO] [stdout]   --> src/L05_pruning/unification.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum SpinePruneStatus {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/L05_pruning/unification.rs:49:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Infer {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  49 |     fn invert_go(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn invert(
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn prune_ty_go(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     fn prune_ty(&mut self, pr: &Pruning, a: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |     fn prune_meta(&mut self, pruning: Pruning, m: MetaVar) -> Result<MetaVar, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     fn prune_vflex_go(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 191 |     fn prune_vflex(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 229 |     fn rename_sp(&mut self, pren: &PartialRenaming, t: Tm, sp: &Spine) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 239 |     fn rename(&mut self, pren: &PartialRenaming, t: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 270 |     fn lams_go(&self, l: Lvl, t: Tm, a: VTy, l_prime: Lvl) -> Tm {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 302 |     fn lams(&self, l: Lvl, a: VTy, t: Tm) -> Tm {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     fn solve(&mut self, gamma: Lvl, m: MetaVar, sp: Spine, rhs: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 317 |     fn solve_with_pren(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 348 |     fn unify_sp(&mut self, l: Lvl, sp: &Spine, sp_prime: &Spine) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |     fn flex_flex(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 384 |     fn intersect_go(&mut self, sp: Spine, sp_prime: Spine) -> Option<List<Option<Icit>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 408 |     fn intersect(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 424 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Pruning` is never used
[INFO] [stdout]  --> src/L05_pruning/syntax.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type Pruning = List<Option<Icit>>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Locals` is never used
[INFO] [stdout]  --> src/L05_pruning/syntax.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Locals {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_ty` is never used
[INFO] [stdout]   --> src/L05_pruning/syntax.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn close_ty(mcl: Locals, b: Ty) -> Ty {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MetaVar` is never constructed
[INFO] [stdout]   --> src/L06_string/mod.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct MetaVar(u32);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MetaEntry` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:20:6
[INFO] [stdout]    |
[INFO] [stdout] 20 | enum MetaEntry {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ix` is never constructed
[INFO] [stdout]   --> src/L06_string/mod.rs:26:8
[INFO] [stdout]    |
[INFO] [stdout] 26 | struct Ix(u32);
[INFO] [stdout]    |        ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DeclTm` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub enum DeclTm {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Tm` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:46:6
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Ty` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:60:6
[INFO] [stdout]    |
[INFO] [stdout] 60 | type Ty = Tm;
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lvl` is never constructed
[INFO] [stdout]   --> src/L06_string/mod.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct Lvl(u32);
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Env` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:72:6
[INFO] [stdout]    |
[INFO] [stdout] 72 | type Env = List<Rc<Val>>;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Spine` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:73:6
[INFO] [stdout]    |
[INFO] [stdout] 73 | type Spine = List<(Rc<Val>, Icit)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Closure` is never constructed
[INFO] [stdout]   --> src/L06_string/mod.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | struct Closure(Env, Rc<Tm>);
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Val` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:79:6
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VTy` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:90:6
[INFO] [stdout]    |
[INFO] [stdout] 90 | type VTy = Val;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `vvar` and `vmeta` are never used
[INFO] [stdout]   --> src/L06_string/mod.rs:93:8
[INFO] [stdout]    |
[INFO] [stdout] 92 | impl Val {
[INFO] [stdout]    | -------- associated functions in this implementation
[INFO] [stdout] 93 |     fn vvar(x: Lvl) -> Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |     fn vmeta(m: MetaVar) -> Self {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lvl2ix` is never used
[INFO] [stdout]    --> src/L06_string/mod.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn lvl2ix(l: Lvl, x: Lvl) -> Ix {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UnifyError` is never constructed
[INFO] [stdout]    --> src/L06_string/mod.rs:110:8
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct UnifyError;
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `empty_span` is never used
[INFO] [stdout]    --> src/L06_string/mod.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn empty_span<T>(data: T) -> Span<T> {
[INFO] [stdout]     |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Error` is never constructed
[INFO] [stdout]    --> src/L06_string/mod.rs:122:12
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct Error(String);
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Infer` is never constructed
[INFO] [stdout]    --> src/L06_string/mod.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout] 124 | pub struct Infer {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/L06_string/mod.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Infer {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 129 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     fn new_meta(&mut self, a: Rc<VTy>) -> u32 {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 136 |     fn fresh_meta(&mut self, cxt: &Cxt, a: &Rc<VTy>) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 141 |     fn lookup_meta(&self, m: &MetaVar) -> &MetaEntry {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     fn force(&self, t: &Rc<Val>) -> Rc<Val> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     fn v_meta(&self, m: &MetaVar) -> Rc<Val> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |     fn closure_apply(&self, closure: &Closure, u: Rc<Val>) -> Rc<Val> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 166 |     fn v_app(&self, t: Rc<Val>, u: Rc<Val>, i: Icit) -> Rc<Val> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn v_app_sp(&self, t: Rc<Val>, spine: Spine) -> Rc<Val> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 186 |     fn v_app_pruning(&self, env: &Env, v: Rc<Val>, pr: &Pruning) -> Rc<Val> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 202 |     fn eval(&self, env: &Env, tm: &Tm) -> Rc<Val> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     fn quote_sp(&self, l: Lvl, t: Tm, spine: Spine) -> Tm {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 240 |     fn quote(&self, l: Lvl, t: &Rc<Val>) -> Tm {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 264 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |            ^^
[INFO] [stdout] ...
[INFO] [stdout] 269 |     fn close_val(&self, cxt: &Cxt, t: &Rc<Val>) -> Closure {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 273 |     fn unify_catch(&mut self, cxt: &Cxt, t: &Rc<Val>, t_prime: &Rc<Val>) -> Result<(), Error> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run` is never used
[INFO] [stdout]    --> src/L06_string/mod.rs:287:8
[INFO] [stdout]     |
[INFO] [stdout] 287 | pub fn run(input: &str, path_id: u32) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `preprocess` is never used
[INFO] [stdout]    --> src/L06_string/mod.rs:304:8
[INFO] [stdout]     |
[INFO] [stdout] 304 | pub fn preprocess(s: &str) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run1` is never used
[INFO] [stdout]    --> src/L06_string/mod.rs:373:8
[INFO] [stdout]     |
[INFO] [stdout] 373 | pub fn run1(input: &str, path_id: u32) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn parser(input: &str, id: u32) -> Option<Vec<Decl>> {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `kw` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:42:4
[INFO] [stdout]    |
[INFO] [stdout] 42 | fn kw<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<()>> {
[INFO] [stdout]    |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:49:4
[INFO] [stdout]    |
[INFO] [stdout] 49 | fn string<'a: 'b, 'b>(p: TokenKind) -> impl Parser<&'b [TokenNode<'a>], Span<String>> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paren` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:56:4
[INFO] [stdout]    |
[INFO] [stdout] 56 | fn paren<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `square` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:63:4
[INFO] [stdout]    |
[INFO] [stdout] 63 | fn square<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn brace<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_atom` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:77:4
[INFO] [stdout]    |
[INFO] [stdout] 77 | fn p_atom<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_arg` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:87:4
[INFO] [stdout]    |
[INFO] [stdout] 87 | fn p_arg<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], (Either, Raw))> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_spine` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:99:4
[INFO] [stdout]    |
[INFO] [stdout] 99 | fn p_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_bind` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:110:4
[INFO] [stdout]     |
[INFO] [stdout] 110 | fn p_bind<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Span<String>)> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_lam_binder` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn p_lam_binder<'a: 'b, 'b>(
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_lam` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:127:4
[INFO] [stdout]     |
[INFO] [stdout] 127 | fn p_lam<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_pi_binder` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:138:4
[INFO] [stdout]     |
[INFO] [stdout] 138 | fn p_pi_binder<'a: 'b, 'b>(
[INFO] [stdout]     |    ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_pi` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn p_pi<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fun_or_spine` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:179:4
[INFO] [stdout]     |
[INFO] [stdout] 179 | fn fun_or_spine<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_let` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:193:4
[INFO] [stdout]     |
[INFO] [stdout] 193 | fn p_let<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_raw` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:214:4
[INFO] [stdout]     |
[INFO] [stdout] 214 | fn p_raw<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Raw)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_def` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:218:4
[INFO] [stdout]     |
[INFO] [stdout] 218 | fn p_def<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Decl)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_print` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:238:4
[INFO] [stdout]     |
[INFO] [stdout] 238 | fn p_print<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Decl)> {
[INFO] [stdout]     |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `p_decl` is never used
[INFO] [stdout]    --> src/L06_string/parser/mod.rs:244:4
[INFO] [stdout]     |
[INFO] [stdout] 244 | fn p_decl<'a: 'b, 'b>(input: &'b [TokenNode<'a>]) -> Option<(&'b [TokenNode<'a>], Decl)> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TokenKind` is never used
[INFO] [stdout]  --> src/L06_string/parser/lex.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum TokenKind {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Token` is never used
[INFO] [stdout]   --> src/L06_string/parser/lex.rs:38:10
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub type Token<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `KEYWORD` is never used
[INFO] [stdout]   --> src/L06_string/parser/lex.rs:42:7
[INFO] [stdout]    |
[INFO] [stdout] 42 | const KEYWORD: [(&str, TokenKind); 4] = [
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `OP` is never used
[INFO] [stdout]   --> src/L06_string/parser/lex.rs:49:7
[INFO] [stdout]    |
[INFO] [stdout] 49 | const OP: [(&str, TokenKind); 15] = [
[INFO] [stdout]    |       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L06_string/parser/lex.rs:67:10
[INFO] [stdout]    |
[INFO] [stdout] 67 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `string` is never used
[INFO] [stdout]   --> src/L06_string/parser/lex.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn string(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `ident` is never used
[INFO] [stdout]   --> src/L06_string/parser/lex.rs:75:4
[INFO] [stdout]    |
[INFO] [stdout] 75 | fn ident(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]    --> src/L06_string/parser/lex.rs:102:4
[INFO] [stdout]     |
[INFO] [stdout] 102 | fn brace(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]     |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `op` is never used
[INFO] [stdout]    --> src/L06_string/parser/lex.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn op(input: Span<&str>) -> Option<(Input<'_>, Token<'_>)> {
[INFO] [stdout]     |    ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lex` is never used
[INFO] [stdout]    --> src/L06_string/parser/lex.rs:133:8
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub fn lex(input: Span<&str>) -> Option<(Input<'_>, Vec<Token<'_>>)> {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Icit` is never used
[INFO] [stdout]  --> src/L06_string/parser/syntax.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum Icit {
[INFO] [stdout]   |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Either` is never used
[INFO] [stdout]   --> src/L06_string/parser/syntax.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum Either {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Raw` is never used
[INFO] [stdout]   --> src/L06_string/parser/syntax.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Raw {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Decl` is never used
[INFO] [stdout]   --> src/L06_string/parser/syntax.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum Decl {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/L06_string/elaboration.rs:12:8
[INFO] [stdout]     |
[INFO] [stdout]  11 | impl Infer {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  12 |     fn insert_go(&mut self, cxt: &Cxt, t: Tm, va: &Rc<Val>) -> (Tm, Rc<VTy>) {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  27 |     fn insert_t(&mut self, cxt: &Cxt, act: Result<(Tm, Rc<VTy>), Error>) -> Result<(Tm, Rc<VTy>), Error> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  30 |     fn insert(&mut self, cxt: &Cxt, act: Result<(Tm, Rc<VTy>), Error>) -> Result<(Tm, Rc<VTy>), Error> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  36 |     fn insert_until_go(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  61 |     fn insert_until_name(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  69 |     fn check(&mut self, cxt: &Cxt, t: Raw, a: &Rc<Val>) -> Result<Tm, Error> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn infer(&mut self, cxt: &Cxt, t: Decl) -> Result<(DeclTm, Val, Cxt), Error> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 187 |     pub fn infer_expr(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Rc<Val>), Error> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]  --> src/L06_string/cxt.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum NameOrigin {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L06_string/cxt.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Cxt` is never constructed
[INFO] [stdout]   --> src/L06_string/cxt.rs:17:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub struct Cxt {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `empty`, `names`, `bind`, `new_binder`, and `define` are never used
[INFO] [stdout]   --> src/L06_string/cxt.rs:26:12
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl Cxt {
[INFO] [stdout]    | -------- associated items in this implementation
[INFO] [stdout] 26 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn empty() -> Self {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn names(&self) -> List<String> {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Rc<Val>) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 75 |     pub fn new_binder(&self, x: Span<String>, a_quote: Tm) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Rc<Val>, a: Ty, va: Rc<VTy>) -> Self {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PartialRenaming` is never constructed
[INFO] [stdout]   --> src/L06_string/unification.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct PartialRenaming {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `lift` is never used
[INFO] [stdout]   --> src/L06_string/unification.rs:20:4
[INFO] [stdout]    |
[INFO] [stdout] 20 | fn lift(pr: &PartialRenaming) -> PartialRenaming {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip` is never used
[INFO] [stdout]   --> src/L06_string/unification.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn skip(pr: &PartialRenaming) -> PartialRenaming {
[INFO] [stdout]    |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SpinePruneStatus` is never used
[INFO] [stdout]   --> src/L06_string/unification.rs:42:6
[INFO] [stdout]    |
[INFO] [stdout] 42 | enum SpinePruneStatus {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple methods are never used
[INFO] [stdout]    --> src/L06_string/unification.rs:49:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Infer {
[INFO] [stdout]     | ---------- methods in this implementation
[INFO] [stdout]  49 |     fn invert_go(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  73 |     fn invert(
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     fn prune_ty_go(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn prune_ty(&mut self, pr: &Pruning, a: &Rc<Val>) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 135 |     fn prune_meta(&mut self, pruning: Pruning, m: MetaVar) -> Result<MetaVar, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 157 |     fn prune_vflex_go(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 193 |     fn prune_vflex(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 231 |     fn rename_sp(&mut self, pren: &PartialRenaming, t: Tm, sp: &Spine) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 241 |     fn rename(&mut self, pren: &PartialRenaming, t: &Rc<Val>) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 275 |     fn lams_go(&self, l: Lvl, t: Tm, a: &Rc<VTy>, l_prime: Lvl) -> Tm {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 307 |     fn lams(&self, l: Lvl, a: &Rc<VTy>, t: Tm) -> Tm {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     fn solve(&mut self, gamma: Lvl, m: MetaVar, sp: Spine, rhs: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 322 |     fn solve_with_pren(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 353 |     fn unify_sp(&mut self, l: Lvl, sp: &Spine, sp_prime: &Spine) -> Result<(), UnifyError> {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 364 |     fn flex_flex(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     fn intersect_go(&mut self, sp: Spine, sp_prime: Spine) -> Option<List<Option<Icit>>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 413 |     fn intersect(
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 429 |     pub fn unify(&mut self, l: Lvl, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Pruning` is never used
[INFO] [stdout]  --> src/L06_string/syntax.rs:5:10
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub type Pruning = List<Option<Icit>>;
[INFO] [stdout]   |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Locals` is never used
[INFO] [stdout]  --> src/L06_string/syntax.rs:8:10
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub enum Locals {
[INFO] [stdout]   |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `close_ty` is never used
[INFO] [stdout]   --> src/L06_string/syntax.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn close_ty(mcl: Locals, b: Ty) -> Ty {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L06_string/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ATP` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:10:7
[INFO] [stdout]    |
[INFO] [stdout] 10 | const ATP: i32 = 3;  // atomp
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `APPP` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:11:7
[INFO] [stdout]    |
[INFO] [stdout] 11 | const APPP: i32 = 2; // appp
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `PIP` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const PIP: i32 = 1;  // pip
[INFO] [stdout]    |       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `LETP` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:13:7
[INFO] [stdout]    |
[INFO] [stdout] 13 | const LETP: i32 = 0; // letp
[INFO] [stdout]    |       ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bracket` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:15:4
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn bracket(s: String) -> String {
[INFO] [stdout]    |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paren` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:19:4
[INFO] [stdout]    |
[INFO] [stdout] 19 | fn paren(f: String) -> String {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fresh` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:23:4
[INFO] [stdout]    |
[INFO] [stdout] 23 | fn fresh(ns: List<String>, suggested: &str) -> String {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go_ix` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn go_ix(ns: List<String>, ix: u32) -> String {
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `go_app_pruning` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:4
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pretty_tm` is never used
[INFO] [stdout]   --> src/L06_string/pretty.rs:55:8
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub fn pretty_tm(prec: i32, ns: List<String>, tm: &Tm) -> String {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L07_sum_type/mod.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Solved(Val, VTy),
[INFO] [stdout] 23 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L07_sum_type/mod.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L07_sum_type/mod.rs:183:18
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run1` is never used
[INFO] [stdout]    --> src/L07_sum_type/mod.rs:717:8
[INFO] [stdout]     |
[INFO] [stdout] 717 | pub fn run1(input: &str, path_id: u32) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]  --> src/L07_sum_type/cxt.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum NameOrigin {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L07_sum_type/cxt.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L07_sum_type/parser/lex.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/L07_sum_type/pattern_match.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 26 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 27 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 26 ~         (),
[INFO] [stdout] 27 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07_sum_type/pattern_match.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 44 -     Unreachable(Raw),
[INFO] [stdout] 44 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07_sum_type/pattern_match.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unmatched(Pattern),
[INFO] [stdout] 45 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L07_sum_type/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/mod.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Solved(Val, VTy),
[INFO] [stdout] 25 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/mod.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L07a_depend_pm/mod.rs:187:18
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run1` is never used
[INFO] [stdout]    --> src/L07a_depend_pm/mod.rs:899:8
[INFO] [stdout]     |
[INFO] [stdout] 899 | pub fn run1(input: &str, path_id: u32) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/cxt.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum NameOrigin {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/cxt.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_env` is never used
[INFO] [stdout]    --> src/L07a_depend_pm/cxt.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Cxt {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 221 |     pub fn print_env(&self, infer: &Infer) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L07a_depend_pm/parser/lex.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Leaf(MatchBody),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Leaf(MatchBody),
[INFO] [stdout] 25 +     Leaf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 27 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         Vec<(Constructor, Vec<Var>, Box<DecisionTree>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         (),
[INFO] [stdout] 28 ~         (),
[INFO] [stdout] 29 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl DecisionTree {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     pub fn iter(&self) -> Box<dyn Iterator<Item = &MatchBody> + '_> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unreachable(Raw),
[INFO] [stdout] 45 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 46 -     Unmatched(Pattern),
[INFO] [stdout] 46 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L07a_depend_pm/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L08_product_type/mod.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     Solved(Val, VTy),
[INFO] [stdout] 24 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L08_product_type/mod.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L08_product_type/mod.rs:186:18
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run1` is never used
[INFO] [stdout]    --> src/L08_product_type/mod.rs:689:8
[INFO] [stdout]     |
[INFO] [stdout] 689 | pub fn run1(input: &str, path_id: u32) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]   --> src/L08_product_type/cxt.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum NameOrigin {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L08_product_type/cxt.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_env` is never used
[INFO] [stdout]    --> src/L08_product_type/cxt.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Cxt {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 221 |     pub fn print_env(&self, infer: &Infer) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L08_product_type/parser/lex.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Leaf(MatchBody),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Leaf(MatchBody),
[INFO] [stdout] 25 +     Leaf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 27 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         Vec<(Constructor, Vec<Var>, Box<DecisionTree>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         (),
[INFO] [stdout] 28 ~         (),
[INFO] [stdout] 29 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl DecisionTree {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     pub fn iter(&self) -> Box<dyn Iterator<Item = &MatchBody> + '_> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unreachable(Raw),
[INFO] [stdout] 45 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 46 -     Unmatched(Pattern),
[INFO] [stdout] 46 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L08_product_type/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L09_mltt/mod.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     Solved(Val, VTy),
[INFO] [stdout] 24 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L09_mltt/mod.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L09_mltt/mod.rs:186:18
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Error(pub Span<String>);
[INFO] [stdout]     |            ----- ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run1` is never used
[INFO] [stdout]    --> src/L09_mltt/mod.rs:700:8
[INFO] [stdout]     |
[INFO] [stdout] 700 | pub fn run1(input: &str, path_id: u32) -> Result<String, Error> {
[INFO] [stdout]     |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L09_mltt/parser/lex.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Leaf(MatchBody),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Leaf(MatchBody),
[INFO] [stdout] 25 +     Leaf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 27 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         Vec<(Constructor, Vec<Var>, Box<DecisionTree>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         (),
[INFO] [stdout] 28 ~         (),
[INFO] [stdout] 29 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl DecisionTree {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     pub fn iter(&self) -> Box<dyn Iterator<Item = &MatchBody> + '_> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unreachable(Raw),
[INFO] [stdout] 45 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 46 -     Unmatched(Pattern),
[INFO] [stdout] 46 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L09_mltt/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L10_typeclass/mod.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout]    |     ------          ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout] 25 +     Solved(Rc<Val>, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L10_typeclass/mod.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `typ`, `body`, `typ_pretty`, and `body_pretty` are never read
[INFO] [stdout]   --> src/L10_typeclass/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     Def {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 41 |         name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 42 |         typ: Rc<Val>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 43 |         body: Rc<Val>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 44 |         typ_pretty: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 45 |         body_pretty: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeclTm` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run1` is never used
[INFO] [stdout]     --> src/L10_typeclass/mod.rs:1307:8
[INFO] [stdout]      |
[INFO] [stdout] 1307 | pub fn run1(input: &str, path_id: u32) -> Result<String, Error> {
[INFO] [stdout]      |        ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L10_typeclass/parser/lex.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L10_typeclass/pattern_match.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 -     Unreachable(Raw),
[INFO] [stdout] 22 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L10_typeclass/pattern_match.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Unmatched(Pattern),
[INFO] [stdout] 23 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Fn` and `Trait` are never constructed
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum Typ {
[INFO] [stdout]    |          --- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Fn(Box<Typ>, Box<Typ>),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     Trait(Span<String>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Typ` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/L10_typeclass/typeclass.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl Synth {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 135 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L10_typeclass/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L11_macro/mod.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout]    |     ------          ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 -     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout] 29 +     Solved(Rc<Val>, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L11_macro/mod.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `typ` and `body` are never read
[INFO] [stdout]   --> src/L11_macro/mod.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Def {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 45 |         name: Span<String>,
[INFO] [stdout] 46 |         typ: Rc<Val>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 47 |         body: Rc<Val>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeclTm` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L11_macro/parser/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Expect(TokenKind),
[INFO] [stdout]    |     ------ ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     Expect(TokenKind),
[INFO] [stdout] 15 +     Expect(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prefix_binding_power` is never used
[INFO] [stdout]    --> src/L11_macro/parser/mod.rs:316:4
[INFO] [stdout]     |
[INFO] [stdout] 316 | fn prefix_binding_power(op: &Span<String>) -> ((), u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L11_macro/parser/lex.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Var` is never used
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | type Var = i32;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 21 -     Unreachable(Raw),
[INFO] [stdout] 21 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 -     Unmatched(Pattern),
[INFO] [stdout] 22 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seed` is never read
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct Compiler {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 68 |     seed: i32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fresh` is never used
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl Compiler {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn fresh(&mut self) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_by_cxt` is never used
[INFO] [stdout]   --> src/L11_macro/syntax.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Locals {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 15 |     pub fn update_by_cxt(&self, infer: &Infer, decl: &Decl, lvl: Lvl, cxt: &List<Rc<Val>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Fn` and `Trait` are never constructed
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum Typ {
[INFO] [stdout]    |          --- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Fn(Box<Typ>, Box<Typ>),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     Trait(Span<String>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Typ` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/L11_macro/typeclass.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl Synth {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 137 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L11_macro/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L01_eval` should have a snake case name
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod L01_eval;
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `l01_eval`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L02_tyck` should have a snake case name
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | mod L02_tyck;
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `l02_tyck`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L03_holes` should have a snake case name
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | mod L03_holes;
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `l03_holes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L04_implicit` should have a snake case name
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | mod L04_implicit;
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `l04_implicit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L05_pruning` should have a snake case name
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | mod L05_pruning;
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `l05_pruning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L06_string` should have a snake case name
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | mod L06_string;
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `l06_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L07_sum_type` should have a snake case name
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | mod L07_sum_type;
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `l07_sum_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L07a_depend_pm` should have a snake case name
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | mod L07a_depend_pm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `l07a_depend_pm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L08_product_type` should have a snake case name
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | mod L08_product_type;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `l08_product_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L09_mltt` should have a snake case name
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | mod L09_mltt;
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `l09_mltt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L10_typeclass` should have a snake case name
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | mod L10_typeclass;
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `l10_typeclass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L11_macro` should have a snake case name
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | mod L11_macro;
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `l11_macro`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 20s
[INFO] running `Command { std: "docker" "inspect" "b2236fb1573933e768aead00bfab47b0cd09645cecbcd8888888b392e25b6a3b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2236fb1573933e768aead00bfab47b0cd09645cecbcd8888888b392e25b6a3b", kill_on_drop: false }`
[INFO] [stdout] b2236fb1573933e768aead00bfab47b0cd09645cecbcd8888888b392e25b6a3b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 185bf972946f29c1e4d5cb89b199bedf058ba943c5910e0dd1db5dacbe03838c
[INFO] running `Command { std: "docker" "start" "-a" "185bf972946f29c1e4d5cb89b199bedf058ba943c5910e0dd1db5dacbe03838c", kill_on_drop: false }`
[INFO] [stderr]    Compiling elaboration-zoo-lsp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `hash::Hash`, `ops::Add`, and `str::pattern::Pattern`
[INFO] [stdout]  --> src/parser_lib_resilient.rs:1:23
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{fmt::Debug, ops::Add, str::pattern::Pattern, hash::Hash};
[INFO] [stdout]   |                       ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Severity`
[INFO] [stdout]  --> src/parser_lib_resilient.rs:3:43
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub use crate::parser_lib::{Span, ToSpan, Severity, Diagnostic};
[INFO] [stdout]   |                                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L03_holes/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L04_implicit/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Raw`
[INFO] [stdout]  --> src/L04_implicit/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L04_implicit/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L04_implicit/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L05_pruning/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Raw`
[INFO] [stdout]  --> src/L05_pruning/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L05_pruning/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stdout]  --> src/L05_pruning/elaboration.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     cxt::NameOrigin, empty_span, lvl2ix, parser::syntax::{Either, Icit, Raw}, Closure, Cxt, Error, Infer, Ix, Tm, VTy, Val
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                                                                       ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L05_pruning/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/L05_pruning/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L06_string/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Raw`
[INFO] [stdout]  --> src/L06_string/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L06_string/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stdout]  --> src/L06_string/elaboration.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 |     cxt::NameOrigin, empty_span, lvl2ix, parser::syntax::{Decl, Either, Icit, Raw}, Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^                                                                                                     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L06_string/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/L06_string/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07_sum_type/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Either` and `Pattern`
[INFO] [stdout]  --> src/L07_sum_type/mod.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                      ^^^^^^        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L07_sum_type/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07_sum_type/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07_sum_type/elaboration.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{list::List, parser_lib::Span, L07_sum_type::{parser::syntax::Pattern, pattern_match::Compiler, PatternDetail}};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stdout]  --> src/L07_sum_type/elaboration.rs:8:41
[INFO] [stdout]   |
[INFO] [stdout] 8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stdout]   |                                         ^^
[INFO] [stdout] 9 |     cxt::NameOrigin,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07_sum_type/parser/syntax.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07_sum_type/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/L07_sum_type/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07a_depend_pm/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pattern` and `Raw`
[INFO] [stdout]  --> src/L07a_depend_pm/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L07a_depend_pm/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L07a_depend_pm/cxt.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L07a_depend_pm/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07a_depend_pm/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07a_depend_pm/elaboration.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix`, `PatternDetail`, `Pattern`, and `cxt::NameOrigin`
[INFO] [stdout]   --> src/L07a_depend_pm/elaboration.rs:8:41
[INFO] [stdout]    |
[INFO] [stdout]  8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stdout]    |                                         ^^
[INFO] [stdout]  9 |     cxt::NameOrigin, Lvl,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     empty_span, lvl2ix,
[INFO] [stdout] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stdout]    |                                               ^^^^^^^
[INFO] [stdout] 12 |     pattern_match::Compiler,
[INFO] [stdout] 13 |     PatternDetail,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L07a_depend_pm/parser/syntax.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L07a_depend_pm/pattern_match.rs:6:32
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::{parser_lib::{Span, ToSpan}, L07a_depend_pm::{parser::syntax::Icit}};
[INFO] [stdout]   |                                ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L07a_depend_pm/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stdout]  --> src/L07a_depend_pm/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L08_product_type/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pattern` and `Raw`
[INFO] [stdout]  --> src/L08_product_type/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L08_product_type/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L08_product_type/cxt.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/L08_product_type/elaboration.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L08_product_type/elaboration.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ix`, `PatternDetail`, `Pattern`, and `cxt::NameOrigin`
[INFO] [stdout]   --> src/L08_product_type/elaboration.rs:8:41
[INFO] [stdout]    |
[INFO] [stdout]  8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stdout]    |                                         ^^
[INFO] [stdout]  9 |     cxt::NameOrigin, Lvl,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     empty_span, lvl2ix,
[INFO] [stdout] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stdout]    |                                               ^^^^^^^
[INFO] [stdout] 12 |     pattern_match::Compiler,
[INFO] [stdout] 13 |     PatternDetail,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `newKeyword` should have an upper camel case name
[INFO] [stdout]   --> src/L08_product_type/parser/lex.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 |     newKeyword,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `NewKeyword`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `list::List`
[INFO] [stdout]  --> src/L08_product_type/parser/syntax.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::empty_span`
[INFO] [stdout]   --> src/L08_product_type/parser/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use super::empty_span;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L08_product_type/pattern_match.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::parser_lib::{Span, ToSpan};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L08_product_type/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stdout]  --> src/L08_product_type/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L09_mltt/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Pattern` and `Raw`
[INFO] [stdout]  --> src/L09_mltt/mod.rs:3:36
[INFO] [stdout]   |
[INFO] [stdout] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stdout]   |                                    ^^^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DecisionTree`
[INFO] [stdout]  --> src/L09_mltt/mod.rs:4:31
[INFO] [stdout]   |
[INFO] [stdout] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stdout]   |                               ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `collections::HashMap`
[INFO] [stdout]  --> src/L09_mltt/elaboration.rs:1:21
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::{cmp::max, collections::HashMap};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PatternDetail` and `Pattern`
[INFO] [stdout]   --> src/L09_mltt/elaboration.rs:11:47
[INFO] [stdout]    |
[INFO] [stdout] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stdout]    |                                               ^^^^^^^
[INFO] [stdout] 12 |     pattern_match::Compiler, MetaEntry,
[INFO] [stdout] 13 |     PatternDetail,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L09_mltt/pattern_match.rs:6:31
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::parser_lib::{Span, ToSpan};
[INFO] [stdout]   |                               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L09_mltt/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stdout]  --> src/L09_mltt/unification.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L10_typeclass/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L10_typeclass/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pretty::pretty_tm` and `typeclass::Typ`
[INFO] [stdout]  --> src/L10_typeclass/unification.rs:6:88
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix, typeclass::Typ,
[INFO] [stdout]   |                                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm, typeclass::Assertion, Raw,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L11_macro/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Lvl`
[INFO] [stdout]  --> src/L11_macro/elaboration.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     Lvl, Rc,
[INFO] [stdout]   |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L11_macro/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `pretty::pretty_tm` and `typeclass::Typ`
[INFO] [stdout]  --> src/L11_macro/unification.rs:6:88
[INFO] [stdout]   |
[INFO] [stdout] 6 |     Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix, typeclass::Typ,
[INFO] [stdout]   |                                                                                        ^^^^^^^^^^^^^^
[INFO] [stdout] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm, typeclass::Assertion, Raw, Rc, Decl,
[INFO] [stdout]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stdout]   --> src/main.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `RwLock`
[INFO] [stdout]   --> src/main.rs:50:29
[INFO] [stdout]    |
[INFO] [stdout] 50 | use std::sync::{Arc, Mutex, RwLock, Condvar};
[INFO] [stdout]    |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam_channel::Sender`
[INFO] [stdout]   --> src/main.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 | use crossbeam_channel::Sender; // lsp_server 内部使用的是 crossbeam 或类似的 channel
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L09_mltt/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L08_product_type/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L11_macro/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L10_typeclass/elaboration.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/parser_lib_resilient.rs:22:71
[INFO] [stdout]    |
[INFO] [stdout] 22 |         move |input, state: &mut S| self.parse(input, state).or_else(|e| rhs.parse(input, state))//TODO: err combine
[INFO] [stdout]    |                                                                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L03_holes/mod.rs:492:22
[INFO] [stdout]     |
[INFO] [stdout] 492 |             (Val::Pi(x, a, b_closure), Val::Pi(x_prime, a_prime, b_prime_closure)) => {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x_prime`
[INFO] [stdout]    --> src/L03_holes/mod.rs:492:48
[INFO] [stdout]     |
[INFO] [stdout] 492 |             (Val::Pi(x, a, b_closure), Val::Pi(x_prime, a_prime, b_prime_closure)) => {
[INFO] [stdout]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_prime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L03_holes/mod.rs:661:25
[INFO] [stdout]     |
[INFO] [stdout] 661 |             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]     |                         ^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `U`
[INFO] [stdout]     |
[INFO] [stdout] 661 -             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout] 661 +             (Raw::Hole, L03_holes::Val::U) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 661 |             (Raw::Hole, _a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]     |                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]   --> src/L04_implicit/elaboration.rs:87:25
[INFO] [stdout]    |
[INFO] [stdout] 87 |             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]    |                         ^
[INFO] [stdout]    |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `U`
[INFO] [stdout]    |
[INFO] [stdout] 87 -             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout] 87 +             (Raw::Hole, L04_implicit::Val::U) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]    |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]    |
[INFO] [stdout] 87 |             (Raw::Hole, _a) => Ok(self.fresh_meta(cxt)),
[INFO] [stdout]    |                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L04_implicit/elaboration.rs:136:22
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Raw::Lam(x, Either::Name(_), t) => {
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L04_implicit/elaboration.rs:136:42
[INFO] [stdout]     |
[INFO] [stdout] 136 |             Raw::Lam(x, Either::Name(_), t) => {
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t_t`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:185:41
[INFO] [stdout]     |
[INFO] [stdout] 185 |             (Val::Lam(_, i, t_closure), t_t) => self.unify(
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_t_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:155:22
[INFO] [stdout]     |
[INFO] [stdout] 155 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:155:42
[INFO] [stdout]     |
[INFO] [stdout] 155 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:288:37
[INFO] [stdout]     |
[INFO] [stdout] 288 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:222:22
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:222:42
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L06_string/unification.rs:293:37
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L06_string/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_quote`
[INFO] [stdout]    --> src/L07_sum_type/cxt.rs:119:46
[INFO] [stdout]     |
[INFO] [stdout] 119 |     pub fn fake_bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stdout]     |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L07_sum_type/elaboration.rs:368:22
[INFO] [stdout]     |
[INFO] [stdout] 368 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L07_sum_type/elaboration.rs:368:42
[INFO] [stdout]     |
[INFO] [stdout] 368 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret_bind`
[INFO] [stdout]    --> src/L07_sum_type/pattern_match.rs:181:51
[INFO] [stdout]     |
[INFO] [stdout] 181 |                         .map(|(constr, item_typs, ret_bind)| {
[INFO] [stdout]     |                                                   ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret_bind`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sum_name`
[INFO] [stdout]    --> src/L07_sum_type/pattern_match.rs:382:17
[INFO] [stdout]     |
[INFO] [stdout] 382 |                 sum_name,
[INFO] [stdout]     |                 ^^^^^^^^ help: try ignoring the field: `sum_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:298:29
[INFO] [stdout]     |
[INFO] [stdout] 298 |             Val::Match(val, env, cases) => {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:334:37
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L07_sum_type/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L07_sum_type/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `env`
[INFO] [stdout]    --> src/L07_sum_type/mod.rs:422:29
[INFO] [stdout]     |
[INFO] [stdout] 422 |             Val::Match(val, env, cases) => {
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_env`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_quote`
[INFO] [stdout]    --> src/L07a_depend_pm/cxt.rs:121:46
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn fake_bind(&self, x: Span<String>, a_quote: Tm, a: Val, global_idx: Lvl) -> Self {
[INFO] [stdout]     |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/L07a_depend_pm/elaboration.rs:184:22
[INFO] [stdout]     |
[INFO] [stdout] 184 |                 let (ret, error) = compiler.compile(self, typ, &clause, cxt, self.eval(&cxt.env, tm.clone()))?;
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L07a_depend_pm/elaboration.rs:422:22
[INFO] [stdout]     |
[INFO] [stdout] 422 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L07a_depend_pm/elaboration.rs:422:42
[INFO] [stdout]     |
[INFO] [stdout] 422 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:365:37
[INFO] [stdout]     |
[INFO] [stdout] 365 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L07a_depend_pm/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L07a_depend_pm/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a_quote`
[INFO] [stdout]    --> src/L08_product_type/cxt.rs:121:46
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn fake_bind(&self, x: Span<String>, a_quote: Tm, a: Val, global_idx: Lvl) -> Self {
[INFO] [stdout]     |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_quote`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/L08_product_type/elaboration.rs:183:22
[INFO] [stdout]     |
[INFO] [stdout] 183 |                 let (ret, error) = compiler.compile(self, typ, &clause, cxt, self.eval(&cxt.env, tm.clone()))?;
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L08_product_type/elaboration.rs:470:22
[INFO] [stdout]     |
[INFO] [stdout] 470 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L08_product_type/elaboration.rs:470:42
[INFO] [stdout]     |
[INFO] [stdout] 470 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:365:37
[INFO] [stdout]     |
[INFO] [stdout] 365 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L08_product_type/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L08_product_type/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L09_mltt/elaboration.rs:161:32
[INFO] [stdout]     |
[INFO] [stdout] 161 |                         Val::U(x) => {//TODO:x?
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/L09_mltt/elaboration.rs:237:22
[INFO] [stdout]     |
[INFO] [stdout] 237 |                 let (ret, error) = compiler.compile(self, typ, &clause, cxt, self.eval(&cxt.env, tm.clone()))?;
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L09_mltt/elaboration.rs:537:42
[INFO] [stdout]     |
[INFO] [stdout] 537 |             Raw::Lam(x, Either::Name(_), t) => Err(Error(x.map(|_| "infer named lambda".to_owned()))),
[INFO] [stdout]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]   --> src/L09_mltt/parser/syntax.rs:91:28
[INFO] [stdout]    |
[INFO] [stdout] 91 |             Raw::SumCase { typ, case_name, datas } => datas.last()
[INFO] [stdout]    |                            ^^^ help: try ignoring the field: `typ: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:355:37
[INFO] [stdout]     |
[INFO] [stdout] 355 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `p`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:19
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `top_ns`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:27
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ns`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:49
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:67
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pr`
[INFO] [stdout]   --> src/L09_mltt/pretty.rs:51:75
[INFO] [stdout]    |
[INFO] [stdout] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stdout]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L09_mltt/pretty.rs:141:28
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Tm::Sum(span, tms, items) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L10_typeclass/elaboration.rs:167:32
[INFO] [stdout]     |
[INFO] [stdout] 167 |                         Val::U(x) => {//TODO:x?
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]   --> src/L10_typeclass/parser/syntax.rs:94:41
[INFO] [stdout]    |
[INFO] [stdout] 94 |             Raw::SumCase { is_trait: _, typ, case_name, datas } => datas.last()
[INFO] [stdout]    |                                         ^^^ help: try ignoring the field: `typ: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/L10_typeclass/pattern_match.rs:218:29
[INFO] [stdout]     |
[INFO] [stdout] 218 |                         Err(e) => {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `var`
[INFO] [stdout]    --> src/L10_typeclass/pattern_match.rs:248:15
[INFO] [stdout]     |
[INFO] [stdout] 248 |             [(var, typ, head_name, icit), heads_rest @ ..] => {
[INFO] [stdout]     |               ^^^ help: if this is intentional, prefix it with an underscore: `_var`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:360:37
[INFO] [stdout]     |
[INFO] [stdout] 360 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:24:22
[INFO] [stdout]    |
[INFO] [stdout] 24 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:24:27
[INFO] [stdout]    |
[INFO] [stdout] 24 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:24:33
[INFO] [stdout]    |
[INFO] [stdout] 24 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:21
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icit`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_icit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `closure`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:26:38
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closure`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:29:31
[INFO] [stdout]    |
[INFO] [stdout] 29 |             Val::LiteralIntro(span) => todo!(),
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L10_typeclass/pretty.rs:179:28
[INFO] [stdout]     |
[INFO] [stdout] 179 |         Tm::Sum(span, tms, items, _) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_trait`
[INFO] [stdout]    --> src/L10_typeclass/pretty.rs:188:23
[INFO] [stdout]     |
[INFO] [stdout] 188 |         Tm::SumCase { is_trait, typ, case_name, datas: params } => format!(
[INFO] [stdout]     |                       ^^^^^^^^ help: try ignoring the field: `is_trait: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L11_macro/cxt.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let t = decl.insert(x.data.clone(), (x.to_span(), t, vt, a, va));
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L11_macro/elaboration.rs:167:32
[INFO] [stdout]     |
[INFO] [stdout] 167 |                         Val::U(x) => {//TODO:x?
[INFO] [stdout]     |                                ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]    --> src/L11_macro/parser/syntax.rs:100:41
[INFO] [stdout]     |
[INFO] [stdout] 100 |             Raw::SumCase { is_trait: _, typ, case_name, datas } => datas.last()
[INFO] [stdout]     |                                         ^^^ help: try ignoring the field: `typ: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/L11_macro/pattern_match.rs:217:29
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         Err(e) => {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L11_macro/unification.rs:378:37
[INFO] [stdout]     |
[INFO] [stdout] 378 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:26:22
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                      ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |             Val::Obj(val, span, sp) => None,
[INFO] [stdout]    |                                 ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:21
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `icit`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:27
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                           ^^^^ help: if this is intentional, prefix it with an underscore: `_icit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `closure`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:28:38
[INFO] [stdout]    |
[INFO] [stdout] 28 |             Val::Pi(span, icit, val, closure) => None,
[INFO] [stdout]    |                                      ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_closure`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:31:31
[INFO] [stdout]    |
[INFO] [stdout] 31 |             Val::LiteralIntro(span) => todo!(),
[INFO] [stdout]    |                               ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L11_macro/pretty.rs:180:28
[INFO] [stdout]     |
[INFO] [stdout] 180 |         Tm::Sum(span, tms, items, _) => format!(
[INFO] [stdout]     |                            ^^^^^ help: if this is intentional, prefix it with an underscore: `_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_trait`
[INFO] [stdout]    --> src/L11_macro/pretty.rs:189:23
[INFO] [stdout]     |
[INFO] [stdout] 189 |         Tm::SumCase { is_trait, typ, case_name, datas: params } => format!(
[INFO] [stdout]     |                       ^^^^^^^^ help: try ignoring the field: `is_trait: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sender_clone`
[INFO] [stdout]   --> src/main.rs:89:13
[INFO] [stdout]    |
[INFO] [stdout] 89 |         let sender_clone = client.connection.sender.clone(); // 假设 Connection sender 是可 Clone 的
[INFO] [stdout]    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sender_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]    --> src/main.rs:228:35
[INFO] [stdout]     |
[INFO] [stdout] 228 |                 Message::Response(resp) => {
[INFO] [stdout]     |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:239:58
[INFO] [stdout]     |
[INFO] [stdout] 239 |                         Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:247:58
[INFO] [stdout]     |
[INFO] [stdout] 247 |                         Err(ExtractError::MethodMismatch(not)) =>(),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:255:58
[INFO] [stdout]     |
[INFO] [stdout] 255 |                         Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `not`
[INFO] [stdout]    --> src/main.rs:263:58
[INFO] [stdout]     |
[INFO] [stdout] 263 |                         Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]     |                                                          ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cvar`
[INFO] [stdout]    --> src/main.rs:853:28
[INFO] [stdout]     |
[INFO] [stdout] 853 |                 let (lock, cvar) = &*self.processed_signal;
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_cvar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:893:17
[INFO] [stdout]     |
[INFO] [stdout] 893 |             let mut ret = String::new();
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ret`
[INFO] [stdout]    --> src/main.rs:893:17
[INFO] [stdout]     |
[INFO] [stdout] 893 |             let mut ret = String::new();
[INFO] [stdout]     |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_ret`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:996:9
[INFO] [stdout]     |
[INFO] [stdout] 996 |     let mut backend = Backend::new(Client { connection });
[INFO] [stdout]     |         ----^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::Infer::nf`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Tm` is more private than the item `L04_implicit::Infer::nf`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:220:5
[INFO] [stdout]     |
[INFO] [stdout] 220 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:32:1
[INFO] [stdout]     |
[INFO] [stdout]  32 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Tm` is more private than the item `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer`
[INFO] [stdout]   --> src/L04_implicit/elaboration.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer`
[INFO] [stdout]   --> src/L04_implicit/elaboration.rs:98:5
[INFO] [stdout]    |
[INFO] [stdout] 98 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::elaboration::<impl L04_implicit::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::env`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     pub env: Env,      // Used for evaluation
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::env` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Lvl` is more private than the item `L04_implicit::cxt::Cxt::lvl`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub lvl: Lvl,      // Used for unification
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::lvl` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Lvl` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | struct Lvl(u32);
[INFO] [stdout]    | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::types`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub types: Types,  // Used for raw name lookup and pretty printing
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::types` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::BD` is more private than the item `L04_implicit::cxt::Cxt::bds`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub bds: List<BD>, // Used for fresh meta creation
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^ field `L04_implicit::cxt::Cxt::bds` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::BD` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | enum BD {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn bind(&self, x: Span<String>, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::new_binder`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn new_binder(&self, x: Span<String>, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::cxt::Cxt::new_binder` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::cxt::Cxt::define`
[INFO] [stdout]   --> src/L04_implicit/cxt.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     pub fn define(&self, x: Span<String>, t: Val, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Lvl` is more private than the item `L04_implicit::unification::<impl L04_implicit::Infer>::unify`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::unification::<impl L04_implicit::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Lvl` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | struct Lvl(u32);
[INFO] [stdout]     | ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::Val` is more private than the item `L04_implicit::unification::<impl L04_implicit::Infer>::unify`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::unification::<impl L04_implicit::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L04_implicit::UnifyError` is more private than the item `L04_implicit::unification::<impl L04_implicit::Infer>::unify`
[INFO] [stdout]    --> src/L04_implicit/unification.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L04_implicit::unification::<impl L04_implicit::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L04_implicit::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L04_implicit/mod.rs:89:1
[INFO] [stdout]     |
[INFO] [stdout]  89 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::Infer::nf`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::Infer::nf`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:234:5
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout]  34 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]     |
[INFO] [stdout]  34 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer`
[INFO] [stdout]    --> src/L05_pruning/elaboration.rs:120:5
[INFO] [stdout]     |
[INFO] [stdout] 120 |     pub fn infer(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Val), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::elaboration::<impl L05_pruning::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::env`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 |     pub env: Env,      // Used for evaluation
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L05_pruning::cxt::Cxt::env` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::src_names`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub src_names: HashMap<String, (Lvl, VTy)>
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `L05_pruning::cxt::Cxt::src_names` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 34 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::cxt::Cxt::new_binder`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn new_binder(&self, x: Span<String>, a_quote: Tm) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::new_binder` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::cxt::Cxt::define`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Val, a: Ty, va: VTy) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::cxt::Cxt::define`
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:58:5
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Val, a: Ty, va: VTy) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Val` is more private than the item `L05_pruning::unification::<impl L05_pruning::Infer>::unify`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::unification::<impl L05_pruning::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::UnifyError` is more private than the item `L05_pruning::unification::<impl L05_pruning::Infer>::unify`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:424:5
[INFO] [stdout]     |
[INFO] [stdout] 424 |     pub fn unify(&mut self, l: Lvl, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L05_pruning::unification::<impl L05_pruning::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L05_pruning::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L05_pruning/mod.rs:91:1
[INFO] [stdout]     |
[INFO] [stdout]  91 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::syntax::Locals::Define::2`
[INFO] [stdout]   --> src/L05_pruning/syntax.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                       ^^ field `L05_pruning::syntax::Locals::Define::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::syntax::Locals::Define::3`
[INFO] [stdout]   --> src/L05_pruning/syntax.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                           ^^ field `L05_pruning::syntax::Locals::Define::3` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L05_pruning::Tm` is more private than the item `L05_pruning::syntax::Locals::Bind::2`
[INFO] [stdout]   --> src/L05_pruning/syntax.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Bind(Box<Locals>, Span<String>, Ty),
[INFO] [stdout]    |                                     ^^ field `L05_pruning::syntax::Locals::Bind::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L05_pruning::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L05_pruning/mod.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::DeclTm::Println::0`
[INFO] [stdout]   --> src/L06_string/mod.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |     Println(Tm),
[INFO] [stdout]    |             ^^ field `L06_string::DeclTm::Println::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::Infer::nf`
[INFO] [stdout]    --> src/L06_string/mod.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::Infer::nf`
[INFO] [stdout]    --> src/L06_string/mod.rs:264:5
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::Infer::nf` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::elaboration::<impl L06_string::Infer>::infer`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:124:5
[INFO] [stdout]     |
[INFO] [stdout] 124 |     pub fn infer(&mut self, cxt: &Cxt, t: Decl) -> Result<(DeclTm, Val, Cxt), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::elaboration::<impl L06_string::Infer>::infer` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::elaboration::<impl L06_string::Infer>::infer_expr`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn infer_expr(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Rc<Val>), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::elaboration::<impl L06_string::Infer>::infer_expr` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:46:1
[INFO] [stdout]     |
[INFO] [stdout]  46 | enum Tm {
[INFO] [stdout]     | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::elaboration::<impl L06_string::Infer>::infer_expr`
[INFO] [stdout]    --> src/L06_string/elaboration.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn infer_expr(&mut self, cxt: &Cxt, t: Raw) -> Result<(Tm, Rc<Val>), Error> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::elaboration::<impl L06_string::Infer>::infer_expr` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::env`
[INFO] [stdout]   --> src/L06_string/cxt.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     pub env: Env, // Used for evaluation
[INFO] [stdout]    |     ^^^^^^^^^^^^ field `L06_string::cxt::Cxt::env` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::src_names`
[INFO] [stdout]   --> src/L06_string/cxt.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 |     pub src_names: HashMap<String, (Lvl, Rc<VTy>)>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `L06_string::cxt::Cxt::src_names` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L06_string/cxt.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Rc<Val>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::bind`
[INFO] [stdout]   --> src/L06_string/cxt.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn bind(&self, x: Span<String>, a_quote: Tm, a: Rc<Val>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::bind` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::cxt::Cxt::new_binder`
[INFO] [stdout]   --> src/L06_string/cxt.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn new_binder(&self, x: Span<String>, a_quote: Tm) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::new_binder` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::cxt::Cxt::define`
[INFO] [stdout]   --> src/L06_string/cxt.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Rc<Val>, a: Ty, va: Rc<VTy>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::cxt::Cxt::define`
[INFO] [stdout]   --> src/L06_string/cxt.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn define(&self, x: Span<String>, t: Tm, vt: Rc<Val>, a: Ty, va: Rc<VTy>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::cxt::Cxt::define` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:79:1
[INFO] [stdout]    |
[INFO] [stdout] 79 | enum Val {
[INFO] [stdout]    | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Val` is more private than the item `L06_string::unification::<impl L06_string::Infer>::unify`
[INFO] [stdout]    --> src/L06_string/unification.rs:429:5
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn unify(&mut self, l: Lvl, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::unification::<impl L06_string::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::Val` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:79:1
[INFO] [stdout]     |
[INFO] [stdout]  79 | enum Val {
[INFO] [stdout]     | ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::UnifyError` is more private than the item `L06_string::unification::<impl L06_string::Infer>::unify`
[INFO] [stdout]    --> src/L06_string/unification.rs:429:5
[INFO] [stdout]     |
[INFO] [stdout] 429 |     pub fn unify(&mut self, l: Lvl, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L06_string::unification::<impl L06_string::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L06_string::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L06_string/mod.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::syntax::Locals::Define::2`
[INFO] [stdout]   --> src/L06_string/syntax.rs:10:39
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                       ^^ field `L06_string::syntax::Locals::Define::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::syntax::Locals::Define::3`
[INFO] [stdout]   --> src/L06_string/syntax.rs:10:43
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Define(Box<Locals>, Span<String>, Ty, Tm),
[INFO] [stdout]    |                                           ^^ field `L06_string::syntax::Locals::Define::3` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L06_string::Tm` is more private than the item `L06_string::syntax::Locals::Bind::2`
[INFO] [stdout]   --> src/L06_string/syntax.rs:11:37
[INFO] [stdout]    |
[INFO] [stdout] 11 |     Bind(Box<Locals>, Span<String>, Ty),
[INFO] [stdout]    |                                     ^^ field `L06_string::syntax::Locals::Bind::2` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `L06_string::Tm` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/L06_string/mod.rs:46:1
[INFO] [stdout]    |
[INFO] [stdout] 46 | enum Tm {
[INFO] [stdout]    | ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L07_sum_type::UnifyError` is more private than the item `L07_sum_type::unification::<impl L07_sum_type::Infer>::unify`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:482:5
[INFO] [stdout]     |
[INFO] [stdout] 482 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L07_sum_type::unification::<impl L07_sum_type::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L07_sum_type::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L07_sum_type/mod.rs:171:1
[INFO] [stdout]     |
[INFO] [stdout] 171 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L07a_depend_pm::UnifyError` is more private than the item `L07a_depend_pm::unification::<impl L07a_depend_pm::Infer>::unify`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:514:5
[INFO] [stdout]     |
[INFO] [stdout] 514 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L07a_depend_pm::unification::<impl L07a_depend_pm::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L07a_depend_pm::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L07a_depend_pm/mod.rs:175:1
[INFO] [stdout]     |
[INFO] [stdout] 175 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L08_product_type::UnifyError` is more private than the item `L08_product_type::unification::<impl L08_product_type::Infer>::unify`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:514:5
[INFO] [stdout]     |
[INFO] [stdout] 514 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L08_product_type::unification::<impl L08_product_type::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L08_product_type::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L08_product_type/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::invert`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:73:5
[INFO] [stdout]     |
[INFO] [stdout]  73 | /     pub fn invert(
[INFO] [stdout]  74 | |         &self,
[INFO] [stdout]  75 | |         gamma: Lvl,
[INFO] [stdout]  76 | |         sp: Spine,
[INFO] [stdout]  77 | |     ) -> Result<(PartialRenaming, Option<Pruning>), UnifyError> {
[INFO] [stdout]     | |_______________________________________________________________^ method `L09_mltt::unification::<impl L09_mltt::Infer>::invert` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::prune_ty`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:122:5
[INFO] [stdout]     |
[INFO] [stdout] 122 |     pub fn prune_ty(&mut self, pr: &Pruning, a: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L09_mltt::unification::<impl L09_mltt::Infer>::prune_ty` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::rename`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 239 |     pub fn rename(&mut self, pren: &PartialRenaming, t: Val) -> Result<Tm, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L09_mltt::unification::<impl L09_mltt::Infer>::rename` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L09_mltt::UnifyError` is more private than the item `L09_mltt::unification::<impl L09_mltt::Infer>::unify`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 503 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: Val, u: Val) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L09_mltt::unification::<impl L09_mltt::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L09_mltt::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L09_mltt/mod.rs:174:1
[INFO] [stdout]     |
[INFO] [stdout] 174 | struct UnifyError;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::invert`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:73:5
[INFO] [stdout]     |
[INFO] [stdout]  73 | /     pub fn invert(
[INFO] [stdout]  74 | |         &self,
[INFO] [stdout]  75 | |         gamma: Lvl,
[INFO] [stdout]  76 | |         sp: &Spine,
[INFO] [stdout]  77 | |     ) -> Result<(PartialRenaming, Option<Pruning>), UnifyError> {
[INFO] [stdout]     | |_______________________________________________________________^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::invert` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::prune_ty`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:123:5
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn prune_ty(&mut self, pr: &Pruning, a: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::prune_ty` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::rename`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:241:5
[INFO] [stdout]     |
[INFO] [stdout] 241 |     pub fn rename(&mut self, pren: &PartialRenaming, t: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::rename` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::solve_multi_trait`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:420:5
[INFO] [stdout]     |
[INFO] [stdout] 420 |     pub fn solve_multi_trait(&mut self, cxt: &Cxt, m: MetaVar) -> Result<(), UnifyError>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::solve_multi_trait` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L10_typeclass::UnifyError` is more private than the item `L10_typeclass::unification::<impl L10_typeclass::Infer>::unify`
[INFO] [stdout]    --> src/L10_typeclass/unification.rs:569:5
[INFO] [stdout]     |
[INFO] [stdout] 569 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L10_typeclass::unification::<impl L10_typeclass::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L10_typeclass::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L10_typeclass/mod.rs:185:1
[INFO] [stdout]     |
[INFO] [stdout] 185 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::invert`
[INFO] [stdout]    --> src/L11_macro/unification.rs:74:5
[INFO] [stdout]     |
[INFO] [stdout]  74 | /     pub fn invert(
[INFO] [stdout]  75 | |         &self,
[INFO] [stdout]  76 | |         gamma: Lvl,
[INFO] [stdout]  77 | |         decl: &Decl,
[INFO] [stdout]  78 | |         sp: &Spine,
[INFO] [stdout]  79 | |     ) -> Result<(PartialRenaming, Option<Pruning>), UnifyError> {
[INFO] [stdout]     | |_______________________________________________________________^ method `L11_macro::unification::<impl L11_macro::Infer>::invert` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::prune_ty`
[INFO] [stdout]    --> src/L11_macro/unification.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub fn prune_ty(&mut self, decl: &Decl, pr: &Pruning, a: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::prune_ty` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::rename`
[INFO] [stdout]    --> src/L11_macro/unification.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 |     pub fn rename(&mut self, decl: &Decl, pren: &PartialRenaming, t: &Rc<Val>) -> Result<Rc<Tm>, UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::rename` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::solve_multi_trait`
[INFO] [stdout]    --> src/L11_macro/unification.rs:441:5
[INFO] [stdout]     |
[INFO] [stdout] 441 |     pub fn solve_multi_trait(&mut self, cxt: &Cxt, m: MetaVar) -> Result<(), UnifyError>{
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::solve_multi_trait` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `L11_macro::UnifyError` is more private than the item `L11_macro::unification::<impl L11_macro::Infer>::unify`
[INFO] [stdout]    --> src/L11_macro/unification.rs:607:5
[INFO] [stdout]     |
[INFO] [stdout] 607 |     pub fn unify(&mut self, l: Lvl, cxt: &Cxt, t: &Rc<Val>, u: &Rc<Val>) -> Result<(), UnifyError> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `L11_macro::unification::<impl L11_macro::Infer>::unify` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `L11_macro::UnifyError` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/L11_macro/mod.rs:187:1
[INFO] [stdout]     |
[INFO] [stdout] 187 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `is_empty`, `diagnostic`, `error`, `warning`, `info`, and `note` are never used
[INFO] [stdout]   --> src/parser_lib.rs:49:12
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl<T> Span<T> {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 49 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn diagnostic<U: AsRef<str>>(&self, severity: Severity, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 64 |     pub fn error<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 67 |     pub fn warning<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 70 |     pub fn info<U: AsRef<str>>(&self, msg: U) -> Diagnostic {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 73 |     pub fn note<U: AsRef<str>>(&self, msg: U) -> (PathId, u32, u32, String) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Severity` is never used
[INFO] [stdout]    --> src/parser_lib.rs:113:10
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum Severity {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Diagnostic` is never constructed
[INFO] [stdout]    --> src/parser_lib.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `with_note` is never used
[INFO] [stdout]    --> src/parser_lib.rs:129:12
[INFO] [stdout]     |
[INFO] [stdout] 128 | impl Diagnostic {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] 129 |     pub fn with_note(mut self, note: (PathId, u32, u32, String)) -> Diagnostic {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser_lib.rs:284:10
[INFO] [stdout]     |
[INFO] [stdout] 284 | pub enum Maybe<T, E> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `map`, `and_then`, and `unwrap_or_else` are never used
[INFO] [stdout]    --> src/parser_lib.rs:301:12
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 301 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 310 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 319 |     pub fn unwrap_or_else<F>(self, f: F) -> T
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `raise_err` is never used
[INFO] [stdout]    --> src/parser_lib.rs:331:12
[INFO] [stdout]     |
[INFO] [stdout] 330 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 331 |     pub fn raise_err(self, err: &mut Vec<Diagnostic>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `maybe` is never used
[INFO] [stdout]    --> src/parser_lib.rs:351:8
[INFO] [stdout]     |
[INFO] [stdout] 351 | pub fn maybe<'a: 'b, 'b, T, P, N: 'a + Copy, E: Copy>(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser_lib.rs:411:11
[INFO] [stdout]     |
[INFO] [stdout] 411 | pub trait AstDebug {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Input` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:205:10
[INFO] [stdout]     |
[INFO] [stdout] 205 | pub type Input<'a> = Span<&'a str>;
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:208:10
[INFO] [stdout]     |
[INFO] [stdout] 208 | pub enum Maybe<T, E> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `map`, `and_then`, and `unwrap_or_else` are never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:225:12
[INFO] [stdout]     |
[INFO] [stdout] 224 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 225 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 243 |     pub fn unwrap_or_else<F>(self, f: F) -> T
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `raise_err` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:255:12
[INFO] [stdout]     |
[INFO] [stdout] 254 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 255 |     pub fn raise_err(self, err: &mut Vec<Diagnostic>) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser_lib_resilient.rs:335:11
[INFO] [stdout]     |
[INFO] [stdout] 335 | pub trait AstDebug {
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `filter` is never used
[INFO] [stdout]   --> src/list.rs:70:12
[INFO] [stdout]    |
[INFO] [stdout] 69 | impl<T: Clone> List<T> {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] 70 |     pub fn filter<F>(&self, f: F) -> List<T>
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `get_by_key2` are never used
[INFO] [stdout]   --> src/bimap.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | / impl<K1, K2, V> BiMap<K1, K2, V>
[INFO] [stdout] 10 | | where
[INFO] [stdout] 11 | |     K1: std::hash::Hash + Eq + Clone,
[INFO] [stdout] 12 | |     K2: std::hash::Hash + Eq + Clone,
[INFO] [stdout] 13 | |     V: Clone,
[INFO] [stdout]    | |_____________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 22 |       pub fn len(&self) -> usize {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |       pub fn get_by_key2(&self, key2: &K2) -> Option<&V> {
[INFO] [stdout]    |              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Str` and `Eof` are never constructed
[INFO] [stdout]   --> src/L01_eval/parser/lex.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L01_eval/parser/lex.rs:86:10
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Str` and `Eof` are never constructed
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 19 |     Str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 23 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `TokenNode` is never used
[INFO] [stdout]   --> src/L02_tyck/parser/lex.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub type TokenNode<'a> = Span<(&'a str, TokenKind)>;
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `VTy` is never used
[INFO] [stdout]   --> src/L03_holes/mod.rs:93:6
[INFO] [stdout]    |
[INFO] [stdout] 93 | type VTy = Val;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L03_holes/mod.rs:144:18
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nf` is never used
[INFO] [stdout]    --> src/L03_holes/mod.rs:418:12
[INFO] [stdout]     |
[INFO] [stdout] 202 | impl Infer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 418 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Str` and `Eof` are never constructed
[INFO] [stdout]   --> src/L03_holes/parser/lex.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 23 |     Str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/L04_implicit/mod.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     Let(Span<String>, Box<Ty>, Box<Tm>, Box<Tm>),
[INFO] [stdout]    |     --- ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tm` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 38 -     Let(Span<String>, Box<Ty>, Box<Tm>, Box<Tm>),
[INFO] [stdout] 38 +     Let((), (), Box<Tm>, Box<Tm>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L04_implicit/mod.rs:101:18
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nf` is never used
[INFO] [stdout]    --> src/L04_implicit/mod.rs:220:12
[INFO] [stdout]     |
[INFO] [stdout] 107 | impl Infer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 220 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Str` and `Eof` are never constructed
[INFO] [stdout]   --> src/L04_implicit/parser/lex.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 25 |     Str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L05_pruning/mod.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 20 -     Solved(Val, VTy),
[INFO] [stdout] 20 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L05_pruning/mod.rs:28:6
[INFO] [stdout]    |
[INFO] [stdout] 28 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/L05_pruning/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |     Let(Span<String>, Box<Ty>, Box<Tm>, Box<Tm>),
[INFO] [stdout]    |     --- ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Tm` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 41 -     Let(Span<String>, Box<Ty>, Box<Tm>, Box<Tm>),
[INFO] [stdout] 41 +     Let((), (), Box<Tm>, Box<Tm>),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L05_pruning/mod.rs:103:18
[INFO] [stdout]     |
[INFO] [stdout] 103 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nf` is never used
[INFO] [stdout]    --> src/L05_pruning/mod.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 109 | impl Infer {
[INFO] [stdout]     | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn nf(&self, env: &Env, t: Tm) -> Tm {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Str` and `Eof` are never constructed
[INFO] [stdout]   --> src/L05_pruning/parser/lex.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 25 |     Str,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] ...
[INFO] [stdout] 29 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]  --> src/L05_pruning/cxt.rs:7:10
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub enum NameOrigin {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L05_pruning/cxt.rs:12:6
[INFO] [stdout]    |
[INFO] [stdout] 12 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L06_string/mod.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout]    |     ------          ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 21 -     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout] 21 +     Solved(Rc<Val>, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L06_string/mod.rs:29:6
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L06_string/mod.rs:122:18
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `brace` is never used
[INFO] [stdout]   --> src/L06_string/parser/mod.rs:70:4
[INFO] [stdout]    |
[INFO] [stdout] 70 | fn brace<'a: 'b, 'b, P, O>(p: P) -> impl Parser<&'b [TokenNode<'a>], O>
[INFO] [stdout]    |    ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L06_string/parser/lex.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]  --> src/L06_string/cxt.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum NameOrigin {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L06_string/cxt.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L06_string/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L07_sum_type/mod.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Solved(Val, VTy),
[INFO] [stdout] 23 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L07_sum_type/mod.rs:31:6
[INFO] [stdout]    |
[INFO] [stdout] 31 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L07_sum_type/mod.rs:183:18
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]  --> src/L07_sum_type/cxt.rs:9:10
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub enum NameOrigin {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L07_sum_type/cxt.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L07_sum_type/parser/lex.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0` and `1` are never read
[INFO] [stdout]   --> src/L07_sum_type/pattern_match.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 26 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 27 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 26 ~         (),
[INFO] [stdout] 27 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07_sum_type/pattern_match.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 44 -     Unreachable(Raw),
[INFO] [stdout] 44 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07_sum_type/pattern_match.rs:45:15
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unmatched(Pattern),
[INFO] [stdout] 45 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L07_sum_type/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/mod.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Solved(Val, VTy),
[INFO] [stdout] 25 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/mod.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L07a_depend_pm/mod.rs:187:18
[INFO] [stdout]     |
[INFO] [stdout] 187 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/cxt.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum NameOrigin {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/cxt.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_env` is never used
[INFO] [stdout]    --> src/L07a_depend_pm/cxt.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Cxt {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 221 |     pub fn print_env(&self, infer: &Infer) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L07a_depend_pm/parser/lex.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 41 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Leaf(MatchBody),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Leaf(MatchBody),
[INFO] [stdout] 25 +     Leaf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 27 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         Vec<(Constructor, Vec<Var>, Box<DecisionTree>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         (),
[INFO] [stdout] 28 ~         (),
[INFO] [stdout] 29 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl DecisionTree {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     pub fn iter(&self) -> Box<dyn Iterator<Item = &MatchBody> + '_> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unreachable(Raw),
[INFO] [stdout] 45 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L07a_depend_pm/pattern_match.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 46 -     Unmatched(Pattern),
[INFO] [stdout] 46 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L07a_depend_pm/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L08_product_type/mod.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     Solved(Val, VTy),
[INFO] [stdout] 24 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L08_product_type/mod.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L08_product_type/mod.rs:186:18
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Error(String);
[INFO] [stdout]     |            ----- ^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `NameOrigin` is never used
[INFO] [stdout]   --> src/L08_product_type/cxt.rs:11:10
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub enum NameOrigin {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Types` is never used
[INFO] [stdout]   --> src/L08_product_type/cxt.rs:16:6
[INFO] [stdout]    |
[INFO] [stdout] 16 | type Types = List<(Span<String>, NameOrigin, Val)>;
[INFO] [stdout]    |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `print_env` is never used
[INFO] [stdout]    --> src/L08_product_type/cxt.rs:221:12
[INFO] [stdout]     |
[INFO] [stdout] 220 | impl Cxt {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] 221 |     pub fn print_env(&self, infer: &Infer) {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L08_product_type/parser/lex.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Leaf(MatchBody),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Leaf(MatchBody),
[INFO] [stdout] 25 +     Leaf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 27 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         Vec<(Constructor, Vec<Var>, Box<DecisionTree>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         (),
[INFO] [stdout] 28 ~         (),
[INFO] [stdout] 29 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl DecisionTree {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     pub fn iter(&self) -> Box<dyn Iterator<Item = &MatchBody> + '_> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unreachable(Raw),
[INFO] [stdout] 45 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L08_product_type/pattern_match.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 46 -     Unmatched(Pattern),
[INFO] [stdout] 46 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L08_product_type/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L09_mltt/mod.rs:24:17
[INFO] [stdout]    |
[INFO] [stdout] 24 |     Solved(Val, VTy),
[INFO] [stdout]    |     ------      ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     Solved(Val, VTy),
[INFO] [stdout] 24 +     Solved(Val, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L09_mltt/mod.rs:32:6
[INFO] [stdout]    |
[INFO] [stdout] 32 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/L09_mltt/mod.rs:186:18
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Error(pub Span<String>);
[INFO] [stdout]     |            ----- ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout]     = note: `Error` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L09_mltt/parser/lex.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 42 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Leaf(MatchBody),
[INFO] [stdout]    |     ---- ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Leaf(MatchBody),
[INFO] [stdout] 25 +     Leaf(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `0`, `1`, and `2` are never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 |     Branch(
[INFO] [stdout]    |     ------ fields in this variant
[INFO] [stdout] 27 |         TypeName,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 28 |         Var,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 29 |         Vec<(Constructor, Vec<Var>, Box<DecisionTree>)>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DecisionTree` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields
[INFO] [stdout]    |
[INFO] [stdout] 27 ~         (),
[INFO] [stdout] 28 ~         (),
[INFO] [stdout] 29 ~         (),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `iter` is never used
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl DecisionTree {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] 34 |     pub fn iter(&self) -> Box<dyn Iterator<Item = &MatchBody> + '_> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:45:17
[INFO] [stdout]    |
[INFO] [stdout] 45 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 45 -     Unreachable(Raw),
[INFO] [stdout] 45 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L09_mltt/pattern_match.rs:46:15
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 46 -     Unmatched(Pattern),
[INFO] [stdout] 46 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L09_mltt/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L10_typeclass/mod.rs:25:21
[INFO] [stdout]    |
[INFO] [stdout] 25 |     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout]    |     ------          ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 25 -     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout] 25 +     Solved(Rc<Val>, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L10_typeclass/mod.rs:33:6
[INFO] [stdout]    |
[INFO] [stdout] 33 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `typ`, `body`, `typ_pretty`, and `body_pretty` are never read
[INFO] [stdout]   --> src/L10_typeclass/mod.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |     Def {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 41 |         name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 42 |         typ: Rc<Val>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 43 |         body: Rc<Val>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 44 |         typ_pretty: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 45 |         body_pretty: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeclTm` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L10_typeclass/parser/lex.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L10_typeclass/pattern_match.rs:22:17
[INFO] [stdout]    |
[INFO] [stdout] 22 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 -     Unreachable(Raw),
[INFO] [stdout] 22 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L10_typeclass/pattern_match.rs:23:15
[INFO] [stdout]    |
[INFO] [stdout] 23 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 23 -     Unmatched(Pattern),
[INFO] [stdout] 23 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Fn` and `Trait` are never constructed
[INFO] [stdout]   --> src/L10_typeclass/typeclass.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum Typ {
[INFO] [stdout]    |          --- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Fn(Box<Typ>, Box<Typ>),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     Trait(Span<String>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Typ` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/L10_typeclass/typeclass.rs:135:12
[INFO] [stdout]     |
[INFO] [stdout] 134 | impl Synth {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 135 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L10_typeclass/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/L11_macro/mod.rs:29:21
[INFO] [stdout]    |
[INFO] [stdout] 29 |     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout]    |     ------          ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MetaEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 29 -     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout] 29 +     Solved(Rc<Val>, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L11_macro/mod.rs:37:6
[INFO] [stdout]    |
[INFO] [stdout] 37 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `typ` and `body` are never read
[INFO] [stdout]   --> src/L11_macro/mod.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Def {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 45 |         name: Span<String>,
[INFO] [stdout] 46 |         typ: Rc<Val>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 47 |         body: Rc<Val>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeclTm` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L11_macro/parser/mod.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 15 |     Expect(TokenKind),
[INFO] [stdout]    |     ------ ^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ErrMsg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 15 -     Expect(TokenKind),
[INFO] [stdout] 15 +     Expect(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prefix_binding_power` is never used
[INFO] [stdout]    --> src/L11_macro/parser/mod.rs:316:4
[INFO] [stdout]     |
[INFO] [stdout] 316 | fn prefix_binding_power(op: &Span<String>) -> ((), u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L11_macro/parser/lex.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 46 |     Eof,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TokenKind` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Var` is never used
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:15:6
[INFO] [stdout]    |
[INFO] [stdout] 15 | type Var = i32;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |     Unreachable(Raw),
[INFO] [stdout]    |     ----------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 21 -     Unreachable(Raw),
[INFO] [stdout] 21 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |     Unmatched(Pattern),
[INFO] [stdout]    |     --------- ^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Warning` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 22 -     Unmatched(Pattern),
[INFO] [stdout] 22 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `seed` is never read
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub struct Compiler {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 68 |     seed: i32,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `fresh` is never used
[INFO] [stdout]   --> src/L11_macro/pattern_match.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 72 | impl Compiler {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 84 |     fn fresh(&mut self) -> i32 {
[INFO] [stdout]    |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `update_by_cxt` is never used
[INFO] [stdout]   --> src/L11_macro/syntax.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Locals {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] 15 |     pub fn update_by_cxt(&self, infer: &Infer, decl: &Decl, lvl: Lvl, cxt: &List<Rc<Val>>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Fn` and `Trait` are never constructed
[INFO] [stdout]   --> src/L11_macro/typeclass.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub enum Typ {
[INFO] [stdout]    |          --- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 14 |     Fn(Box<Typ>, Box<Typ>),
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     Trait(Span<String>),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Typ` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/L11_macro/typeclass.rs:137:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | impl Synth {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] 137 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ShowS` is never used
[INFO] [stdout]  --> src/L11_macro/pretty.rs:8:6
[INFO] [stdout]   |
[INFO] [stdout] 8 | type ShowS = Box<dyn FnOnce(&mut String)>;
[INFO] [stdout]   |      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L01_eval` should have a snake case name
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | mod L01_eval;
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `l01_eval`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L02_tyck` should have a snake case name
[INFO] [stdout]   --> src/main.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | mod L02_tyck;
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `l02_tyck`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L03_holes` should have a snake case name
[INFO] [stdout]   --> src/main.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | mod L03_holes;
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `l03_holes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L04_implicit` should have a snake case name
[INFO] [stdout]   --> src/main.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | mod L04_implicit;
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `l04_implicit`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L05_pruning` should have a snake case name
[INFO] [stdout]   --> src/main.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | mod L05_pruning;
[INFO] [stdout]    |     ^^^^^^^^^^^ help: convert the identifier to snake case: `l05_pruning`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L06_string` should have a snake case name
[INFO] [stdout]   --> src/main.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | mod L06_string;
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to snake case: `l06_string`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L07_sum_type` should have a snake case name
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | mod L07_sum_type;
[INFO] [stdout]    |     ^^^^^^^^^^^^ help: convert the identifier to snake case: `l07_sum_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L07a_depend_pm` should have a snake case name
[INFO] [stdout]   --> src/main.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | mod L07a_depend_pm;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to snake case: `l07a_depend_pm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L08_product_type` should have a snake case name
[INFO] [stdout]   --> src/main.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | mod L08_product_type;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `l08_product_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L09_mltt` should have a snake case name
[INFO] [stdout]   --> src/main.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | mod L09_mltt;
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to snake case: `l09_mltt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L10_typeclass` should have a snake case name
[INFO] [stdout]   --> src/main.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | mod L10_typeclass;
[INFO] [stdout]    |     ^^^^^^^^^^^^^ help: convert the identifier to snake case: `l10_typeclass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L11_macro` should have a snake case name
[INFO] [stdout]   --> src/main.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | mod L11_macro;
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `l11_macro`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 30.24s
[INFO] running `Command { std: "docker" "inspect" "185bf972946f29c1e4d5cb89b199bedf058ba943c5910e0dd1db5dacbe03838c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "185bf972946f29c1e4d5cb89b199bedf058ba943c5910e0dd1db5dacbe03838c", kill_on_drop: false }`
[INFO] [stdout] 185bf972946f29c1e4d5cb89b199bedf058ba943c5910e0dd1db5dacbe03838c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+2fd6efc32704647e64d3d646d21c4c68eae100e4" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1ec0849d86d7cfa5c32eaf43d55e98927877c3cc125544809ee8dc8c23205e1f
[INFO] running `Command { std: "docker" "start" "-a" "1ec0849d86d7cfa5c32eaf43d55e98927877c3cc125544809ee8dc8c23205e1f", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `hash::Hash`, `ops::Add`, and `str::pattern::Pattern`
[INFO] [stderr]  --> src/parser_lib_resilient.rs:1:23
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{fmt::Debug, ops::Add, str::pattern::Pattern, hash::Hash};
[INFO] [stderr]   |                       ^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Severity`
[INFO] [stderr]  --> src/parser_lib_resilient.rs:3:43
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub use crate::parser_lib::{Span, ToSpan, Severity, Diagnostic};
[INFO] [stderr]   |                                           ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L03_holes/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L04_implicit/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Either` and `Raw`
[INFO] [stderr]  --> src/L04_implicit/mod.rs:3:22
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stderr]   |                      ^^^^^^        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L04_implicit/elaboration.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L04_implicit/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L05_pruning/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Either` and `Raw`
[INFO] [stderr]  --> src/L05_pruning/mod.rs:3:22
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stderr]   |                      ^^^^^^        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L05_pruning/elaboration.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stderr]  --> src/L05_pruning/elaboration.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     cxt::NameOrigin, empty_span, lvl2ix, parser::syntax::{Either, Icit, Raw}, Closure, Cxt, Error, Infer, Ix, Tm, VTy, Val
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^                                                                                       ^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L05_pruning/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Error`
[INFO] [stderr]  --> src/L05_pruning/unification.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, lvl2ix,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L06_string/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Either` and `Raw`
[INFO] [stderr]  --> src/L06_string/mod.rs:3:22
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::syntax::{Either, Icit, Raw};
[INFO] [stderr]   |                      ^^^^^^        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L06_string/elaboration.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stderr]  --> src/L06_string/elaboration.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 |     cxt::NameOrigin, empty_span, lvl2ix, parser::syntax::{Decl, Either, Icit, Raw}, Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^                                                                                                     ^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L06_string/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Error`
[INFO] [stderr]  --> src/L06_string/unification.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, lvl2ix,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L07_sum_type/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Either` and `Pattern`
[INFO] [stderr]  --> src/L07_sum_type/mod.rs:3:22
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stderr]   |                      ^^^^^^        ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DecisionTree`
[INFO] [stderr]  --> src/L07_sum_type/mod.rs:4:31
[INFO] [stderr]   |
[INFO] [stderr] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stderr]   |                               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L07_sum_type/elaboration.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `list::List`
[INFO] [stderr]  --> src/L07_sum_type/elaboration.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::{list::List, parser_lib::Span, L07_sum_type::{parser::syntax::Pattern, pattern_match::Compiler, PatternDetail}};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ix` and `cxt::NameOrigin`
[INFO] [stderr]  --> src/L07_sum_type/elaboration.rs:8:41
[INFO] [stderr]   |
[INFO] [stderr] 8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stderr]   |                                         ^^
[INFO] [stderr] 9 |     cxt::NameOrigin,
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `list::List`
[INFO] [stderr]  --> src/L07_sum_type/parser/syntax.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L07_sum_type/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Error`
[INFO] [stderr]  --> src/L07_sum_type/unification.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L07a_depend_pm/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pattern` and `Raw`
[INFO] [stderr]  --> src/L07a_depend_pm/mod.rs:3:36
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stderr]   |                                    ^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DecisionTree`
[INFO] [stderr]  --> src/L07a_depend_pm/mod.rs:4:31
[INFO] [stderr]   |
[INFO] [stderr] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stderr]   |                               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/L07a_depend_pm/cxt.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/L07a_depend_pm/elaboration.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L07a_depend_pm/elaboration.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `list::List`
[INFO] [stderr]  --> src/L07a_depend_pm/elaboration.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::{list::List, parser_lib::Span};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ix`, `PatternDetail`, `Pattern`, and `cxt::NameOrigin`
[INFO] [stderr]   --> src/L07a_depend_pm/elaboration.rs:8:41
[INFO] [stderr]    |
[INFO] [stderr]  8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stderr]    |                                         ^^
[INFO] [stderr]  9 |     cxt::NameOrigin, Lvl,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 10 |     empty_span, lvl2ix,
[INFO] [stderr] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stderr]    |                                               ^^^^^^^
[INFO] [stderr] 12 |     pattern_match::Compiler,
[INFO] [stderr] 13 |     PatternDetail,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `list::List`
[INFO] [stderr]  --> src/L07a_depend_pm/parser/syntax.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToSpan`
[INFO] [stderr]  --> src/L07a_depend_pm/pattern_match.rs:6:32
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::{parser_lib::{Span, ToSpan}, L07a_depend_pm::{parser::syntax::Icit}};
[INFO] [stderr]   |                                ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L07a_depend_pm/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stderr]  --> src/L07a_depend_pm/unification.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stderr]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L08_product_type/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pattern` and `Raw`
[INFO] [stderr]  --> src/L08_product_type/mod.rs:3:36
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stderr]   |                                    ^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DecisionTree`
[INFO] [stderr]  --> src/L08_product_type/mod.rs:4:31
[INFO] [stderr]   |
[INFO] [stderr] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stderr]   |                               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/L08_product_type/cxt.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/L08_product_type/elaboration.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `list::List`
[INFO] [stderr]  --> src/L08_product_type/elaboration.rs:5:13
[INFO] [stderr]   |
[INFO] [stderr] 5 | use crate::{list::List, parser_lib::Span};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Ix`, `PatternDetail`, `Pattern`, and `cxt::NameOrigin`
[INFO] [stderr]   --> src/L08_product_type/elaboration.rs:8:41
[INFO] [stderr]    |
[INFO] [stderr]  8 |     Closure, Cxt, DeclTm, Error, Infer, Ix, Tm, VTy, Val,
[INFO] [stderr]    |                                         ^^
[INFO] [stderr]  9 |     cxt::NameOrigin, Lvl,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^
[INFO] [stderr] 10 |     empty_span, lvl2ix,
[INFO] [stderr] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stderr]    |                                               ^^^^^^^
[INFO] [stderr] 12 |     pattern_match::Compiler,
[INFO] [stderr] 13 |     PatternDetail,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `newKeyword` should have an upper camel case name
[INFO] [stderr]   --> src/L08_product_type/parser/lex.rs:13:5
[INFO] [stderr]    |
[INFO] [stderr] 13 |     newKeyword,
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `NewKeyword`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `list::List`
[INFO] [stderr]  --> src/L08_product_type/parser/syntax.rs:1:13
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{list::List, parser_lib::Span};
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::empty_span`
[INFO] [stderr]   --> src/L08_product_type/parser/mod.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use super::empty_span;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToSpan`
[INFO] [stderr]  --> src/L08_product_type/pattern_match.rs:6:31
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::parser_lib::{Span, ToSpan};
[INFO] [stderr]   |                               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L08_product_type/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stderr]  --> src/L08_product_type/unification.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stderr]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L09_mltt/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Pattern` and `Raw`
[INFO] [stderr]  --> src/L09_mltt/mod.rs:3:36
[INFO] [stderr]   |
[INFO] [stderr] 3 | use parser::syntax::{Either, Icit, Pattern, Raw};
[INFO] [stderr]   |                                    ^^^^^^^  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `DecisionTree`
[INFO] [stderr]  --> src/L09_mltt/mod.rs:4:31
[INFO] [stderr]   |
[INFO] [stderr] 4 | use pattern_match::{Compiler, DecisionTree};
[INFO] [stderr]   |                               ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `collections::HashMap`
[INFO] [stderr]  --> src/L09_mltt/elaboration.rs:1:21
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::{cmp::max, collections::HashMap};
[INFO] [stderr]   |                     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PatternDetail` and `Pattern`
[INFO] [stderr]   --> src/L09_mltt/elaboration.rs:11:47
[INFO] [stderr]    |
[INFO] [stderr] 11 |     parser::syntax::{Decl, Either, Icit, Raw, Pattern},
[INFO] [stderr]    |                                               ^^^^^^^
[INFO] [stderr] 12 |     pattern_match::Compiler, MetaEntry,
[INFO] [stderr] 13 |     PatternDetail,
[INFO] [stderr]    |     ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ToSpan`
[INFO] [stderr]  --> src/L09_mltt/pattern_match.rs:6:31
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::parser_lib::{Span, ToSpan};
[INFO] [stderr]   |                               ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L09_mltt/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Error` and `pretty::pretty_tm`
[INFO] [stderr]  --> src/L09_mltt/unification.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Error, Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix,
[INFO] [stderr]   |     ^^^^^
[INFO] [stderr] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stderr]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L10_typeclass/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L10_typeclass/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `pretty::pretty_tm` and `typeclass::Typ`
[INFO] [stderr]  --> src/L10_typeclass/unification.rs:6:88
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix, typeclass::Typ,
[INFO] [stderr]   |                                                                                        ^^^^^^^^^^^^^^
[INFO] [stderr] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm, typeclass::Assertion, Raw,
[INFO] [stderr]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L11_macro/mod.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Lvl`
[INFO] [stderr]  --> src/L11_macro/elaboration.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 |     Lvl, Rc,
[INFO] [stderr]   |     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L11_macro/unification.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `pretty::pretty_tm` and `typeclass::Typ`
[INFO] [stderr]  --> src/L11_macro/unification.rs:6:88
[INFO] [stderr]   |
[INFO] [stderr] 6 |     Infer, Lvl, MetaEntry, MetaVar, Spine, Tm, UnifyError, VTy, Val, cxt::Cxt, lvl2ix, typeclass::Typ,
[INFO] [stderr]   |                                                                                        ^^^^^^^^^^^^^^
[INFO] [stderr] 7 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm, typeclass::Assertion, Raw, Rc, Decl,
[INFO] [stderr]   |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `Deserialize` and `Serialize`
[INFO] [stderr]   --> src/main.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 | use serde::{Deserialize, Serialize};
[INFO] [stderr]    |             ^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `RwLock`
[INFO] [stderr]   --> src/main.rs:50:29
[INFO] [stderr]    |
[INFO] [stderr] 50 | use std::sync::{Arc, Mutex, RwLock, Condvar};
[INFO] [stderr]    |                             ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `crossbeam_channel::Sender`
[INFO] [stderr]   --> src/main.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 | use crossbeam_channel::Sender; // lsp_server 内部使用的是 crossbeam 或类似的 channel
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L09_mltt/elaboration.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L08_product_type/elaboration.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L11_macro/elaboration.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `colored::Colorize`
[INFO] [stderr]  --> src/L10_typeclass/elaboration.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use colored::Colorize;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `e`
[INFO] [stderr]   --> src/parser_lib_resilient.rs:22:71
[INFO] [stderr]    |
[INFO] [stderr] 22 |         move |input, state: &mut S| self.parse(input, state).or_else(|e| rhs.parse(input, state))//TODO: err combine
[INFO] [stderr]    |                                                                       ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/L03_holes/mod.rs:492:22
[INFO] [stderr]     |
[INFO] [stderr] 492 |             (Val::Pi(x, a, b_closure), Val::Pi(x_prime, a_prime, b_prime_closure)) => {
[INFO] [stderr]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x_prime`
[INFO] [stderr]    --> src/L03_holes/mod.rs:492:48
[INFO] [stderr]     |
[INFO] [stderr] 492 |             (Val::Pi(x, a, b_closure), Val::Pi(x_prime, a_prime, b_prime_closure)) => {
[INFO] [stderr]     |                                                ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_x_prime`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]    --> src/L03_holes/mod.rs:661:25
[INFO] [stderr]     |
[INFO] [stderr] 661 |             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr]     |                         ^
[INFO] [stderr]     |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `U`
[INFO] [stderr]     |
[INFO] [stderr] 661 -             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr] 661 +             (Raw::Hole, L03_holes::Val::U) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr]     |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]     |
[INFO] [stderr] 661 |             (Raw::Hole, _a) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr]     |                         +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a`
[INFO] [stderr]   --> src/L04_implicit/elaboration.rs:87:25
[INFO] [stderr]    |
[INFO] [stderr] 87 |             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr]    |                         ^
[INFO] [stderr]    |
[INFO] [stderr] help: you might have meant to pattern match on the similarly named variant `U`
[INFO] [stderr]    |
[INFO] [stderr] 87 -             (Raw::Hole, a) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr] 87 +             (Raw::Hole, L04_implicit::Val::U) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr]    |
[INFO] [stderr] help: if this is intentional, prefix it with an underscore
[INFO] [stderr]    |
[INFO] [stderr] 87 |             (Raw::Hole, _a) => Ok(self.fresh_meta(cxt)),
[INFO] [stderr]    |                         +
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/L04_implicit/elaboration.rs:136:22
[INFO] [stderr]     |
[INFO] [stderr] 136 |             Raw::Lam(x, Either::Name(_), t) => {
[INFO] [stderr]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> src/L04_implicit/elaboration.rs:136:42
[INFO] [stderr]     |
[INFO] [stderr] 136 |             Raw::Lam(x, Either::Name(_), t) => {
[INFO] [stderr]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t_t`
[INFO] [stderr]    --> src/L04_implicit/unification.rs:185:41
[INFO] [stderr]     |
[INFO] [stderr] 185 |             (Val::Lam(_, i, t_closure), t_t) => self.unify(
[INFO] [stderr]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_t_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/L05_pruning/elaboration.rs:155:22
[INFO] [stderr]     |
[INFO] [stderr] 155 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stderr]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> src/L05_pruning/elaboration.rs:155:42
[INFO] [stderr]     |
[INFO] [stderr] 155 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stderr]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/L05_pruning/unification.rs:288:37
[INFO] [stderr]     |
[INFO] [stderr] 288 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/L06_string/elaboration.rs:222:22
[INFO] [stderr]     |
[INFO] [stderr] 222 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stderr]     |                      ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]    --> src/L06_string/elaboration.rs:222:42
[INFO] [stderr]     |
[INFO] [stderr] 222 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[INFO] [stderr]     |                                          ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `val`
[INFO] [stderr]    --> src/L06_string/unification.rs:293:37
[INFO] [stderr]     |
[INFO] [stderr] 293 |                 Val::Pi(span, icit, val, closure) => Tm::Lam(
[INFO] [stderr]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_val`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `p`
[INFO] [stderr]   --> src/L06_string/pretty.rs:51:19
[INFO] [stderr]    |
[INFO] [stderr] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stderr]    |                   ^ help: if this is intentional, prefix it with an underscore: `_p`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `top_ns`
[INFO] [stderr]   --> src/L06_string/pretty.rs:51:27
[INFO] [stderr]    |
[INFO] [stderr] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stderr]    |                           ^^^^^^ help: if this is intentional, prefix it with an underscore: `_top_ns`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ns`
[INFO] [stderr]   --> src/L06_string/pretty.rs:51:49
[INFO] [stderr]    |
[INFO] [stderr] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stderr]    |                                                 ^^ help: if this is intentional, prefix it with an underscore: `_ns`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `t`
[INFO] [stderr]   --> src/L06_string/pretty.rs:51:67
[INFO] [stderr]    |
[INFO] [stderr] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stderr]    |                                                                   ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `pr`
[INFO] [stderr]   --> src/L06_string/pretty.rs:51:75
[INFO] [stderr]    |
[INFO] [stderr] 51 | fn go_app_pruning(p: i32, top_ns: List<String>, ns: List<String>, t: &Tm, pr: &Pruning) -> String {
[INFO] [stderr]    |                                                                           ^^ help: if this is intentional, prefix it with an underscore: `_pr`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `a_quote`
[INFO] [stderr]    --> src/L07_sum_type/cxt.rs:119:46
[INFO] [stderr]     |
[INFO] [stderr] 119 |     pub fn fake_bind(&self, x: Span<String>, a_quote: Tm, a: Val) -> Self {
[INFO] [stderr]     |                                              ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_a_quote`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `x`
[INFO] [stderr]    --> src/L07_sum_type/elaboration.rs:368:22
[INFO] [stderr]     |
[INFO] [stderr] 368 |             Raw::Lam(x, Either::Name(_), t) => Err(Error("infer named lambda".to_owned())),
[WARN] too many lines in the log, truncating it
