[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] 81ae18961df4f9c56a6ec0fe08a32505cca4c2e2
[INFO] checking yportne13/elaboration-zoo-lsp against dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8 for pr-133502-26
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyportne13%2Felaboration-zoo-lsp" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-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-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/yportne13/elaboration-zoo-lsp on toolchain dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "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" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded lsp-server v0.7.8
[INFO] [stderr]   Downloaded ropey v1.6.1
[INFO] [stderr]   Downloaded str_stack v0.1.1
[INFO] [stderr]   Downloaded oxc_index v0.36.0
[INFO] [stderr]   Downloaded rust-lapper v1.2.0
[INFO] [stderr]   Downloaded inferno v0.12.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:1fa6594d87c8fa7b311925a7a77a16f539833322d9dfba4ce891f211db2f90b1" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b38b765195fe62fab66005477c244a93220f92a5ca3f71e169dd1c3f307fb3a7
[INFO] running `Command { std: "docker" "start" "b38b765195fe62fab66005477c244a93220f92a5ca3f71e169dd1c3f307fb3a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b38b765195fe62fab66005477c244a93220f92a5ca3f71e169dd1c3f307fb3a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b38b765195fe62fab66005477c244a93220f92a5ca3f71e169dd1c3f307fb3a7" "/opt/rustwide/cargo-home/bin/cargo" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b38b765195fe62fab66005477c244a93220f92a5ca3f71e169dd1c3f307fb3a7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b38b765195fe62fab66005477c244a93220f92a5ca3f71e169dd1c3f307fb3a7" "/opt/rustwide/cargo-home/bin/cargo" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]    Compiling find-msvc-tools v0.1.5
[INFO] [stderr]     Checking smallvec v1.14.0
[INFO] [stderr]     Checking icu_locid_transform_data v1.5.0
[INFO] [stderr]     Checking icu_properties_data v1.5.0
[INFO] [stderr]    Compiling zerocopy v0.8.31
[INFO] [stderr]    Compiling object v0.32.2
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]     Checking icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]     Checking log v0.4.30
[INFO] [stderr]     Checking str_indices v0.4.4
[INFO] [stderr]     Checking codespan-reporting v0.13.1
[INFO] [stderr]     Checking rust-lapper v1.2.0
[INFO] [stderr]     Checking smol_str v0.3.2
[INFO] [stderr]     Checking oxc_index v0.36.0
[INFO] [stderr]     Checking clap_builder v4.5.60
[INFO] [stderr]    Compiling cc v1.2.48
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking ropey v1.6.1
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling stacker v0.1.22
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking dashmap v6.1.0
[INFO] [stderr]    Compiling ar_archive_writer v0.2.0
[INFO] [stderr]    Compiling psm v0.1.28
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]     Checking chumsky v0.9.3
[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 serde_repr v0.1.20
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]     Checking clap v4.5.60
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking lsp-server v0.7.8
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.0.3
[INFO] [stderr]     Checking url v2.5.4
[INFO] [stderr]     Checking lsp-types v0.95.1
[INFO] [stderr]     Checking elaboration-zoo-lsp v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `hash::Hash`, `marker::PhantomData`, `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, marker::PhantomData};
[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, unescape};
[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 import: `Lvl`
[INFO] [stdout]   --> src/L12_canonical/elaboration.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Lvl, Rc, MetaVar,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/L12_canonical/parser/macros.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{TokenNode, IError, HashMap, ErrMsg, string, p_raw, p_pi_binder, empty_span, ParserExt, kw, MacroState};
[INFO] [stdout]   |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L12_canonical/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pretty::pretty_tm`
[INFO] [stdout]  --> src/L12_canonical/unification.rs:8:56
[INFO] [stdout]   |
[INFO] [stdout] 8 |     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: `Closure`, `Ix`, `Lvl`, `MetaEntry`, `MetaVar`, `Span`, `Spine`, `Tm`, `Ty`, `VTy`, `close_ty`, and `syntax::Locals`
[INFO] [stdout]  --> src/L12_canonical/canonical.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Infer, MetaEntry, Cxt, Rc, Val, UnifyError, Ty, Span,
[INFO] [stdout]   |            ^^^^^^^^^                            ^^  ^^^^
[INFO] [stdout] 4 |     MetaVar, Tm, Lvl, Ix, List, Closure, VTy, syntax::Locals,
[INFO] [stdout]   |     ^^^^^^^  ^^  ^^^  ^^        ^^^^^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     empty_span, Raw, Either, Spine, close_ty, Icit,
[INFO] [stdout]   |                              ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap` and `extract_base`
[INFO] [stdout]  --> src/L13_namespace/parser/macros.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{TokenNode, IError, HashMap, ErrMsg, BaseMsg, extract_base, string, p_raw, p_pi_binder, empty_span, ParserExt, kw, MacroSt...
[INFO] [stdout]   |                                ^^^^^^^                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L13_namespace/parser/derive.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/L13_namespace/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Assertion` and `pretty::pretty_tm`
[INFO] [stdout]   --> src/L13_namespace/unification.rs:9:56
[INFO] [stdout]    |
[INFO] [stdout]  9 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     typeclass::{Assertion, Instance}, Raw, Rc, Decl,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Closure`, `Ix`, `Lvl`, `MetaEntry`, `MetaVar`, `Span`, `Spine`, `Tm`, `Ty`, `VTy`, `close_ty`, and `syntax::Locals`
[INFO] [stdout]  --> src/L13_namespace/canonical.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Infer, MetaEntry, Cxt, Rc, Val, UnifyError, Ty, Span,
[INFO] [stdout]   |            ^^^^^^^^^                            ^^  ^^^^
[INFO] [stdout] 4 |     MetaVar, Tm, Lvl, Ix, List, Closure, VTy, syntax::Locals,
[INFO] [stdout]   |     ^^^^^^^  ^^  ^^^  ^^        ^^^^^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     empty_span, Raw, Either, Spine, close_ty, Icit,
[INFO] [stdout]   |                              ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser`
[INFO] [stdout]   --> src/lib.rs:49:29
[INFO] [stdout]    |
[INFO] [stdout] 49 | use L13_namespace::parser::{parser, parser_with_macros, macros::MacroRule, MacroExpansionInfo};
[INFO] [stdout]    |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self`, `stdin`, and `stdout`
[INFO] [stdout]   --> src/lib.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 | use std::io::{self, BufRead, Write, stdin, stdout};
[INFO] [stdout]    |               ^^^^                  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `hash::Hash`, `marker::PhantomData`, `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, marker::PhantomData};
[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, unescape};
[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 import: `Lvl`
[INFO] [stdout]   --> src/L12_canonical/elaboration.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     Lvl, Rc, MetaVar,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/L12_canonical/parser/macros.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{TokenNode, IError, HashMap, ErrMsg, string, p_raw, p_pi_binder, empty_span, ParserExt, kw, MacroState};
[INFO] [stdout]   |                                ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L12_canonical/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `pretty::pretty_tm`
[INFO] [stdout]  --> src/L12_canonical/unification.rs:8:56
[INFO] [stdout]   |
[INFO] [stdout] 8 |     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: `Closure`, `Ix`, `Lvl`, `MetaEntry`, `MetaVar`, `Span`, `Spine`, `Tm`, `Ty`, `VTy`, `close_ty`, and `syntax::Locals`
[INFO] [stdout]  --> src/L12_canonical/canonical.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Infer, MetaEntry, Cxt, Rc, Val, UnifyError, Ty, Span,
[INFO] [stdout]   |            ^^^^^^^^^                            ^^  ^^^^
[INFO] [stdout] 4 |     MetaVar, Tm, Lvl, Ix, List, Closure, VTy, syntax::Locals,
[INFO] [stdout]   |     ^^^^^^^  ^^  ^^^  ^^        ^^^^^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     empty_span, Raw, Either, Spine, close_ty, Icit,
[INFO] [stdout]   |                              ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `HashMap` and `extract_base`
[INFO] [stdout]  --> src/L13_namespace/parser/macros.rs:5:32
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::{TokenNode, IError, HashMap, ErrMsg, BaseMsg, extract_base, string, p_raw, p_pi_binder, empty_span, ParserExt, kw, MacroSt...
[INFO] [stdout]   |                                ^^^^^^^                   ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ToSpan`
[INFO] [stdout]  --> src/L13_namespace/parser/derive.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/L13_namespace/unification.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use colored::Colorize;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Assertion` and `pretty::pretty_tm`
[INFO] [stdout]   --> src/L13_namespace/unification.rs:9:56
[INFO] [stdout]    |
[INFO] [stdout]  9 |     parser::syntax::Icit, syntax::Pruning, empty_span, pretty::pretty_tm,
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 10 |     typeclass::{Assertion, Instance}, Raw, Rc, Decl,
[INFO] [stdout]    |                 ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Closure`, `Ix`, `Lvl`, `MetaEntry`, `MetaVar`, `Span`, `Spine`, `Tm`, `Ty`, `VTy`, `close_ty`, and `syntax::Locals`
[INFO] [stdout]  --> src/L13_namespace/canonical.rs:3:12
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Infer, MetaEntry, Cxt, Rc, Val, UnifyError, Ty, Span,
[INFO] [stdout]   |            ^^^^^^^^^                            ^^  ^^^^
[INFO] [stdout] 4 |     MetaVar, Tm, Lvl, Ix, List, Closure, VTy, syntax::Locals,
[INFO] [stdout]   |     ^^^^^^^  ^^  ^^^  ^^        ^^^^^^^  ^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     empty_span, Raw, Either, Spine, close_ty, Icit,
[INFO] [stdout]   |                              ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/L13_namespace/struct_refine_probe.rs:95:1
[INFO] [stdout]    |
[INFO] [stdout] 95 | /// identity_vec: 重建构造函数，非绑定变量，应通过。
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | /// 直接 Vec 匹配，重建构造函数，应通过。
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:117:1
[INFO] [stdout]     |
[INFO] [stdout] 117 | /// 非索引依赖的返回类型（A），预约束的类型 sucessor，通过。
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | /// 嵌套结构体，预约束类型，通过。
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:140:1
[INFO] [stdout]     |
[INFO] [stdout] 140 | /// 不返回绑定变量，而是返回无类型依赖的值。
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:157:1
[INFO] [stdout]     |
[INFO] [stdout] 157 | / /// 直接 Vec 匹配，返回绑定变量 xs。最简复现。
[INFO] [stdout] 158 | | /// 失败模式：expected: Vec[A](_l + 1), find: Vec[A](_l)
[INFO] [stdout] 159 | | /// 原因：绑定 xs 的类型为 Vec[A] l'，但返回类型被细化为 Vec[A] (succ l')，无法统一。
[INFO] [stdout]     | |_------------------------------------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:168:1
[INFO] [stdout]     |
[INFO] [stdout] 168 | / /// 单层 struct，泛型 len，返回绑定变量 xs。
[INFO] [stdout] 169 | | /// 失败模式：expected: Vec[A](_l + 1), find: Vec[A](_l)
[INFO] [stdout]     | |_-------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:182:1
[INFO] [stdout]     |
[INFO] [stdout] 182 | / /// 两个字段，第二个字段类型依赖第一个字段的索引细化。
[INFO] [stdout] 183 | | /// 失败模式：expected: Fin(len + 1), find: Fin(1) 或反向。
[INFO] [stdout] 184 | | /// 原因：绑定 w 的类型 Fin(succ len) 中的 len 是原始的、未经 cons/nil 细化的变量。
[INFO] [stdout]     | |_----------------------------------------------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:198:1
[INFO] [stdout]     |
[INFO] [stdout] 198 | / /// 嵌套 struct，泛型 len，返回绑定尾部变量。
[INFO] [stdout] 199 | | /// 失败模式同 weak02。
[INFO] [stdout]     | |_----------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:211:1
[INFO] [stdout]     |
[INFO] [stdout] 211 | / /// VecHolder: Vec[A] len + Fin(succ len)，递归重建。
[INFO] [stdout] 212 | | /// 失败模式：expected: Fin(_l + 2), find: Fin(_n + 1)
[INFO] [stdout] 213 | | /// 原因：第一个字段匹配 cons (len:=succ l') 与第二个字段匹配 fsucc (len:=n) 的细化
[INFO] [stdout] 214 | | /// 没有传播到对方，导致 n 和 succ l' 无法统一。
[INFO] [stdout]     | |_-----------------------------------------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/L13_namespace/struct_refine_probe.rs:231:1
[INFO] [stdout]     |
[INFO] [stdout] 231 | / /// 返回值是重建结构体，使用了从内部字段提取的变量。
[INFO] [stdout] 232 | | /// 成功/失败？
[INFO] [stdout]     | |_--------------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition: `assert_expected_fail`
[INFO] [stdout]   --> src/L13_namespace/struct_refine_probe.rs:58:14
[INFO] [stdout]    |
[INFO] [stdout] 58 | macro_rules! assert_expected_fail {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `parser`
[INFO] [stdout]   --> src/lib.rs:49:29
[INFO] [stdout]    |
[INFO] [stdout] 49 | use L13_namespace::parser::{parser, parser_with_macros, macros::MacroRule, MacroExpansionInfo};
[INFO] [stdout]    |                             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `self`, `stdin`, and `stdout`
[INFO] [stdout]   --> src/lib.rs:55:15
[INFO] [stdout]    |
[INFO] [stdout] 55 | use std::io::{self, BufRead, Write, stdin, stdout};
[INFO] [stdout]    |               ^^^^                  ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `codespan_reporting::term::emit`: Use `emit_to_write_style` instead or depending on the writer use `emit_to_io_write` or `emit_to_string`
[INFO] [stdout]    --> src/client.rs:184:19
[INFO] [stdout]     |
[INFO] [stdout] 184 |             term::emit(&mut writer, &config, &files, cs_diag).unwrap();
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `codespan_reporting::term::emit`: Use `emit_to_write_style` instead or depending on the writer use `emit_to_io_write` or `emit_to_string`
[INFO] [stdout]    --> src/client.rs:184:19
[INFO] [stdout]     |
[INFO] [stdout] 184 |             term::emit(&mut writer, &config, &files, cs_diag).unwrap();
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L12_canonical/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: `Write`
[INFO] [stdout]   --> src/lib.rs:55:30
[INFO] [stdout]    |
[INFO] [stdout] 55 | use std::io::{self, BufRead, Write, stdin, stdout};
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/lib.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | use std::io::{self, BufRead, Write, stdin, stdout};
[INFO] [stdout]    |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `colored::Colorize`
[INFO] [stdout]  --> src/L13_namespace/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/L13_namespace/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/L12_canonical/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/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/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/L10_typeclass/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/L12_canonical/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: `Write`
[INFO] [stdout]   --> src/lib.rs:55:30
[INFO] [stdout]    |
[INFO] [stdout] 55 | use std::io::{self, BufRead, Write, stdin, stdout};
[INFO] [stdout]    |                              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `BufRead`
[INFO] [stdout]   --> src/lib.rs:55:21
[INFO] [stdout]    |
[INFO] [stdout] 55 | use std::io::{self, BufRead, Write, stdin, stdout};
[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 import: `colored::Colorize`
[INFO] [stdout]  --> src/L13_namespace/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/L13_namespace/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/L12_canonical/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/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/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/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: `version`
[INFO] [stdout]    --> src/client.rs:113:75
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn publish_diagnostics(&self, uri: Url, diagnostics: Vec<Diagnostic>, version: Option<i32>) {
[INFO] [stdout]     |                                                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `version`
[INFO] [stdout]    --> src/client.rs:113:75
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn publish_diagnostics(&self, uri: Url, diagnostics: Vec<Diagnostic>, version: Option<i32>) {
[INFO] [stdout]     |                                                                           ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_version`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]    --> src/L03_holes/mod.rs:338:32
[INFO] [stdout]     |
[INFO] [stdout] 338 |             Val::Flex(m_prime, sp) if m == m_prime => Err(UnifyError), // occurs check
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sp`
[INFO] [stdout]    --> src/L03_holes/mod.rs:338:32
[INFO] [stdout]     |
[INFO] [stdout] 338 |             Val::Flex(m_prime, sp) if m == m_prime => Err(UnifyError), // occurs check
[INFO] [stdout]     |                                ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[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`
[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: `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/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: `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: `sp`
[INFO] [stdout]   --> src/L04_implicit/unification.rs:89:32
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Val::Flex(m_prime, sp) if m == m_prime => Err(UnifyError), // occurs check
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[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: `sp`
[INFO] [stdout]   --> src/L04_implicit/unification.rs:89:32
[INFO] [stdout]    |
[INFO] [stdout] 89 |             Val::Flex(m_prime, sp) if m == m_prime => Err(UnifyError), // occurs check
[INFO] [stdout]    |                                ^^ help: if this is intentional, prefix it with an underscore: `_sp`
[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: `x`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:275:37
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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/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: `x`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L05_pruning/unification.rs:275:37
[INFO] [stdout]     |
[INFO] [stdout] 275 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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/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: `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: `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: `x`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[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:321:37
[INFO] [stdout]     |
[INFO] [stdout] 321 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `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: `x`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L07_sum_type/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[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:321:37
[INFO] [stdout]     |
[INFO] [stdout] 321 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `x`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:352:37
[INFO] [stdout]     |
[INFO] [stdout] 352 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `x`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L07a_depend_pm/unification.rs:352:37
[INFO] [stdout]     |
[INFO] [stdout] 352 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `x`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:352:37
[INFO] [stdout]     |
[INFO] [stdout] 352 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `x`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L08_product_type/unification.rs:352:37
[INFO] [stdout]     |
[INFO] [stdout] 352 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `x`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:342:37
[INFO] [stdout]     |
[INFO] [stdout] 342 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `x`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:115:28
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                            ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:115:31
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `a`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 |             (list, Val::Pi(x, i, a, b)) if list.head().unwrap().is_none() => {
[INFO] [stdout]     |                                  ^ help: if this is intentional, prefix it with an underscore: `_a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `val`
[INFO] [stdout]    --> src/L09_mltt/unification.rs:342:37
[INFO] [stdout]     |
[INFO] [stdout] 342 |                 Val::Pi(span, icit, val, closure) if span.data == "_" => {
[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/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: `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: `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: `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: `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: `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: `decl`
[INFO] [stdout]   --> src/L11_macro/cxt.rs:40:33
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn create_global(infer: &Infer, decl: &Decl, env: &Env, typ: Rc<Val>) -> Rc<Val> {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_decl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/L11_macro/cxt.rs:385:22
[INFO] [stdout]     |
[INFO] [stdout] 385 |         if let Some((span, _, _, _, _)) = t {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L11_macro/cxt.rs:433:13
[INFO] [stdout]     |
[INFO] [stdout] 433 |         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: `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: `x`
[INFO] [stdout]    --> src/L11_macro/elaboration.rs:168:32
[INFO] [stdout]     |
[INFO] [stdout] 168 |                         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: `decl`
[INFO] [stdout]   --> src/L11_macro/cxt.rs:40:33
[INFO] [stdout]    |
[INFO] [stdout] 40 | fn create_global(infer: &Infer, decl: &Decl, env: &Env, typ: Rc<Val>) -> Rc<Val> {
[INFO] [stdout]    |                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_decl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/L11_macro/cxt.rs:385:22
[INFO] [stdout]     |
[INFO] [stdout] 385 |         if let Some((span, _, _, _, _)) = t {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L11_macro/cxt.rs:433:13
[INFO] [stdout]     |
[INFO] [stdout] 433 |         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:168:32
[INFO] [stdout]     |
[INFO] [stdout] 168 |                         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:103:41
[INFO] [stdout]     |
[INFO] [stdout] 103 |             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: `x`
[INFO] [stdout]   --> src/L11_macro/parser/macros.rs:43:53
[INFO] [stdout]    |
[INFO] [stdout] 43 | ...                   msg: token.map(|x| ErrMsg::Expect(*kind)),
[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:103:41
[INFO] [stdout]     |
[INFO] [stdout] 103 |             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: `x`
[INFO] [stdout]   --> src/L11_macro/parser/macros.rs:43:53
[INFO] [stdout]    |
[INFO] [stdout] 43 | ...                   msg: token.map(|x| ErrMsg::Expect(*kind)),
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[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: `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/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: `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: `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: `t`
[INFO] [stdout]    --> src/L11_macro/mod.rs:109:35
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 MetaEntry::Solved(t, _) => None,//TODO: this is error. this will be fixed in L12
[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/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: `t`
[INFO] [stdout]    --> src/L12_canonical/cxt.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 300 |         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: `t`
[INFO] [stdout]    --> src/L11_macro/mod.rs:109:35
[INFO] [stdout]     |
[INFO] [stdout] 109 |                 MetaEntry::Solved(t, _) => None,//TODO: this is error. this will be fixed in L12
[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/L12_canonical/elaboration.rs:169:32
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         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: `span`
[INFO] [stdout]    --> src/L12_canonical/elaboration.rs:536:21
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 let span = name.to_span();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/L12_canonical/cxt.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 300 |         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/L12_canonical/elaboration.rs:169:32
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         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: `span`
[INFO] [stdout]    --> src/L12_canonical/elaboration.rs:536:21
[INFO] [stdout]     |
[INFO] [stdout] 536 |                 let span = name.to_span();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]    --> src/L12_canonical/parser/syntax.rs:120:41
[INFO] [stdout]     |
[INFO] [stdout] 120 |             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: `x`
[INFO] [stdout]   --> src/L12_canonical/parser/macros.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 | ...                   msg: token.map(|x| ErrMsg::Expect(*kind)),
[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/L12_canonical/parser/syntax.rs:120:41
[INFO] [stdout]     |
[INFO] [stdout] 120 |             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: `x`
[INFO] [stdout]   --> src/L12_canonical/parser/macros.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 | ...                   msg: token.map(|x| ErrMsg::Expect(*kind)),
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/L12_canonical/pattern_match.rs:212:29
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         Err(e) => {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]    --> src/L12_canonical/pattern_match.rs:212:29
[INFO] [stdout]     |
[INFO] [stdout] 212 |                         Err(e) => {
[INFO] [stdout]     |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]    --> src/L12_canonical/typeclass.rs:227:33
[INFO] [stdout]     |
[INFO] [stdout] 227 |             (Val::Match(a1, b1, c1, _), Val::Match(a2, b2, c2, _)) => {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]    --> src/L12_canonical/typeclass.rs:227:60
[INFO] [stdout]     |
[INFO] [stdout] 227 |             (Val::Match(a1, b1, c1, _), Val::Match(a2, b2, c2, _)) => {
[INFO] [stdout]     |                                                            ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]    --> src/L12_canonical/typeclass.rs:227:33
[INFO] [stdout]     |
[INFO] [stdout] 227 |             (Val::Match(a1, b1, c1, _), Val::Match(a2, b2, c2, _)) => {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]    --> src/L12_canonical/typeclass.rs:227:60
[INFO] [stdout]     |
[INFO] [stdout] 227 |             (Val::Match(a1, b1, c1, _), Val::Match(a2, b2, c2, _)) => {
[INFO] [stdout]     |                                                            ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L12_canonical/pretty.rs:183:28
[INFO] [stdout]     |
[INFO] [stdout] 183 |         Tm::Sum(span, tms, items, _) => {
[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/L12_canonical/pretty.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 209 |         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: `span`
[INFO] [stdout]   --> src/L12_canonical/canonical.rs:81:35
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 while let Val::Pi(span, icit, dom, clos) = vt.as_ref() {
[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/L12_canonical/pretty.rs:183:28
[INFO] [stdout]     |
[INFO] [stdout] 183 |         Tm::Sum(span, tms, items, _) => {
[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/L12_canonical/pretty.rs:209:23
[INFO] [stdout]     |
[INFO] [stdout] 209 |         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: `span`
[INFO] [stdout]   --> src/L12_canonical/canonical.rs:81:35
[INFO] [stdout]    |
[INFO] [stdout] 81 |                 while let Val::Pi(span, icit, dom, clos) = vt.as_ref() {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `x`
[INFO] [stdout]    --> src/L13_namespace/elaboration.rs:398:32
[INFO] [stdout]     |
[INFO] [stdout] 398 |                         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: `x`
[INFO] [stdout]    --> src/L13_namespace/elaboration.rs:398:32
[INFO] [stdout]     |
[INFO] [stdout] 398 |                         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: `span`
[INFO] [stdout]    --> src/L13_namespace/elaboration.rs:890:21
[INFO] [stdout]     |
[INFO] [stdout] 890 |                 let span = name.to_span();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_param`
[INFO] [stdout]    --> src/L13_namespace/elaboration.rs:965:25
[INFO] [stdout]     |
[INFO] [stdout] 965 |                     let out_param = self.trait_out_param.get(&trait_name.data)
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_expl`
[INFO] [stdout]     --> src/L13_namespace/elaboration.rs:1377:21
[INFO] [stdout]      |
[INFO] [stdout] 1377 |                 let is_expl = matches!(i, Either::Icit(Icit::Expl));
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_expl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/L13_namespace/elaboration.rs:890:21
[INFO] [stdout]     |
[INFO] [stdout] 890 |                 let span = name.to_span();
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out_param`
[INFO] [stdout]    --> src/L13_namespace/elaboration.rs:965:25
[INFO] [stdout]     |
[INFO] [stdout] 965 |                     let out_param = self.trait_out_param.get(&trait_name.data)
[INFO] [stdout]     |                         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_out_param`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `head`
[INFO] [stdout]     --> src/L13_namespace/elaboration.rs:1593:29
[INFO] [stdout]      |
[INFO] [stdout] 1593 |                 if let Some(ref head) = typ_raw_head {
[INFO] [stdout]      |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_expl`
[INFO] [stdout]     --> src/L13_namespace/elaboration.rs:1377:21
[INFO] [stdout]      |
[INFO] [stdout] 1377 |                 let is_expl = matches!(i, Either::Icit(Icit::Expl));
[INFO] [stdout]      |                     ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_expl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `head`
[INFO] [stdout]     --> src/L13_namespace/elaboration.rs:1593:29
[INFO] [stdout]      |
[INFO] [stdout] 1593 |                 if let Some(ref head) = typ_raw_head {
[INFO] [stdout]      |                             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_head`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `typ`
[INFO] [stdout]    --> src/L13_namespace/parser/syntax.rs:144:41
[INFO] [stdout]     |
[INFO] [stdout] 144 |             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: `x`
[INFO] [stdout]   --> src/L13_namespace/parser/macros.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 | ...                   msg: token.map(|x| ErrMsg::Base(BaseMsg::Expect(*kind))),
[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/L13_namespace/parser/syntax.rs:144:41
[INFO] [stdout]     |
[INFO] [stdout] 144 |             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: `x`
[INFO] [stdout]   --> src/L13_namespace/parser/macros.rs:46:53
[INFO] [stdout]    |
[INFO] [stdout] 46 | ...                   msg: token.map(|x| ErrMsg::Base(BaseMsg::Expect(*kind))),
[INFO] [stdout]    |                                       ^ help: if this is intentional, prefix it with an underscore: `_x`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/L13_namespace/parser/mod.rs:1915:13
[INFO] [stdout]      |
[INFO] [stdout] 1915 |         Err(e) => Ok((input, vec![])), // No attribute found, not an error
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]     --> src/L13_namespace/parser/mod.rs:1915:13
[INFO] [stdout]      |
[INFO] [stdout] 1915 |         Err(e) => Ok((input, vec![])), // No attribute found, not an error
[INFO] [stdout]      |             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/L13_namespace/unification.rs:451:13
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let mut solution = self.eval(decl, &List::new(), &self.lams(pren.dom, decl, &mty, rhs));
[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: `cxt`
[INFO] [stdout]    --> src/L13_namespace/unification.rs:456:41
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn solve_multi_trait(&mut self, cxt: &Cxt, m: MetaVar, allow_flex_defaulting: bool) -> Result<(), UnifyError> {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cxt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]    --> src/L13_namespace/typeclass.rs:319:33
[INFO] [stdout]     |
[INFO] [stdout] 319 |             (Val::Match(a1, b1, c1), Val::Match(a2, b2, c2)) => {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]    --> src/L13_namespace/typeclass.rs:319:57
[INFO] [stdout]     |
[INFO] [stdout] 319 |             (Val::Match(a1, b1, c1), Val::Match(a2, b2, c2)) => {
[INFO] [stdout]     |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/L13_namespace/unification.rs:451:13
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let mut solution = self.eval(decl, &List::new(), &self.lams(pren.dom, decl, &mty, rhs));
[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: `cxt`
[INFO] [stdout]    --> src/L13_namespace/unification.rs:456:41
[INFO] [stdout]     |
[INFO] [stdout] 456 |     pub fn solve_multi_trait(&mut self, cxt: &Cxt, m: MetaVar, allow_flex_defaulting: bool) -> Result<(), UnifyError> {
[INFO] [stdout]     |                                         ^^^ help: if this is intentional, prefix it with an underscore: `_cxt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L13_namespace/pretty.rs:182:28
[INFO] [stdout]     |
[INFO] [stdout] 182 |         Tm::Sum(span, tms, items, _) => {
[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/L13_namespace/pretty.rs:208:23
[INFO] [stdout]     |
[INFO] [stdout] 208 |         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: `span`
[INFO] [stdout]   --> src/L13_namespace/canonical.rs:75:35
[INFO] [stdout]    |
[INFO] [stdout] 75 |                 while let Val::Pi(span, icit, dom, clos) = vt.as_ref() {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c1`
[INFO] [stdout]    --> src/L13_namespace/typeclass.rs:319:33
[INFO] [stdout]     |
[INFO] [stdout] 319 |             (Val::Match(a1, b1, c1), Val::Match(a2, b2, c2)) => {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_c1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c2`
[INFO] [stdout]    --> src/L13_namespace/typeclass.rs:319:57
[INFO] [stdout]     |
[INFO] [stdout] 319 |             (Val::Match(a1, b1, c1), Val::Match(a2, b2, c2)) => {
[INFO] [stdout]     |                                                         ^^ help: if this is intentional, prefix it with an underscore: `_c2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `items`
[INFO] [stdout]    --> src/L13_namespace/pretty.rs:182:28
[INFO] [stdout]     |
[INFO] [stdout] 182 |         Tm::Sum(span, tms, items, _) => {
[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/L13_namespace/pretty.rs:208:23
[INFO] [stdout]     |
[INFO] [stdout] 208 |         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: `span`
[INFO] [stdout]   --> src/L13_namespace/canonical.rs:75:35
[INFO] [stdout]    |
[INFO] [stdout] 75 |                 while let Val::Pi(span, icit, dom, clos) = vt.as_ref() {
[INFO] [stdout]    |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:442:22
[INFO] [stdout]     |
[INFO] [stdout] 442 |             Val::Lam(name, _, clos) => {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:447:21
[INFO] [stdout]     |
[INFO] [stdout] 447 |             Val::Pi(name, _, vty, clos) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:455:31
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Val::LiteralIntro(s) => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:458:22
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Val::Sum(name, params, cases, _) => {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:460:22
[INFO] [stdout]     |
[INFO] [stdout] 460 |                 for (pname, pval, pvty, _) in params.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_pname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 for cname in cases.iter() {
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_cname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `case_name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:469:33
[INFO] [stdout]     |
[INFO] [stdout] 469 |             Val::SumCase { typ, case_name, datas, .. } => {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: try ignoring the field: `case_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:472:22
[INFO] [stdout]     |
[INFO] [stdout] 472 |                 for (dname, dval, _) in datas.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_dname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pat`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:480:22
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 for (pat, tm) in cases {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_pat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:521:22
[INFO] [stdout]     |
[INFO] [stdout] 521 |             Tm::Decl(name) => {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:524:28
[INFO] [stdout]     |
[INFO] [stdout] 524 |             Tm::Obj(inner, name) => {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:528:21
[INFO] [stdout]     |
[INFO] [stdout] 528 |             Tm::Lam(name, _, body) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:540:20
[INFO] [stdout]     |
[INFO] [stdout] 540 |             Tm::Pi(name, _, ty_a, ty_b) => {
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:545:21
[INFO] [stdout]     |
[INFO] [stdout] 545 |             Tm::Let(name, ty, val, body) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:556:21
[INFO] [stdout]     |
[INFO] [stdout] 556 |             Tm::Sum(name, params, cases, _) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:558:22
[INFO] [stdout]     |
[INFO] [stdout] 558 |                 for (pname, ptm, pty, _) in params.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_pname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:563:21
[INFO] [stdout]     |
[INFO] [stdout] 563 |                 for cname in cases.iter() {
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_cname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `case_name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:567:32
[INFO] [stdout]     |
[INFO] [stdout] 567 |             Tm::SumCase { typ, case_name, datas, .. } => {
[INFO] [stdout]     |                                ^^^^^^^^^ help: try ignoring the field: `case_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:570:22
[INFO] [stdout]     |
[INFO] [stdout] 570 |                 for (dname, dtm, _) in datas.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_dname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pat`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:577:22
[INFO] [stdout]     |
[INFO] [stdout] 577 |                 for (pat, branch) in cases {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_pat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:594:18
[INFO] [stdout]     |
[INFO] [stdout] 594 |         for (_, (span, rtm, rval, rty, rvty, _)) in cxt.decl.iter() {
[INFO] [stdout]     |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:606:21
[INFO] [stdout]     |
[INFO] [stdout] 606 |         for (_, _, (span, vty)) in cxt.src_names.iter_all() {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:442:22
[INFO] [stdout]     |
[INFO] [stdout] 442 |             Val::Lam(name, _, clos) => {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:447:21
[INFO] [stdout]     |
[INFO] [stdout] 447 |             Val::Pi(name, _, vty, clos) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `s`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:455:31
[INFO] [stdout]     |
[INFO] [stdout] 455 |             Val::LiteralIntro(s) => {
[INFO] [stdout]     |                               ^ help: if this is intentional, prefix it with an underscore: `_s`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:458:22
[INFO] [stdout]     |
[INFO] [stdout] 458 |             Val::Sum(name, params, cases, _) => {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:460:22
[INFO] [stdout]     |
[INFO] [stdout] 460 |                 for (pname, pval, pvty, _) in params.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_pname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:465:21
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 for cname in cases.iter() {
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_cname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `case_name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:469:33
[INFO] [stdout]     |
[INFO] [stdout] 469 |             Val::SumCase { typ, case_name, datas, .. } => {
[INFO] [stdout]     |                                 ^^^^^^^^^ help: try ignoring the field: `case_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:472:22
[INFO] [stdout]     |
[INFO] [stdout] 472 |                 for (dname, dval, _) in datas.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_dname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pat`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:480:22
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 for (pat, tm) in cases {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_pat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:521:22
[INFO] [stdout]     |
[INFO] [stdout] 521 |             Tm::Decl(name) => {
[INFO] [stdout]     |                      ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:524:28
[INFO] [stdout]     |
[INFO] [stdout] 524 |             Tm::Obj(inner, name) => {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:528:21
[INFO] [stdout]     |
[INFO] [stdout] 528 |             Tm::Lam(name, _, body) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:540:20
[INFO] [stdout]     |
[INFO] [stdout] 540 |             Tm::Pi(name, _, ty_a, ty_b) => {
[INFO] [stdout]     |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:545:21
[INFO] [stdout]     |
[INFO] [stdout] 545 |             Tm::Let(name, ty, val, body) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:556:21
[INFO] [stdout]     |
[INFO] [stdout] 556 |             Tm::Sum(name, params, cases, _) => {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:558:22
[INFO] [stdout]     |
[INFO] [stdout] 558 |                 for (pname, ptm, pty, _) in params.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_pname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:563:21
[INFO] [stdout]     |
[INFO] [stdout] 563 |                 for cname in cases.iter() {
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_cname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `case_name`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:567:32
[INFO] [stdout]     |
[INFO] [stdout] 567 |             Tm::SumCase { typ, case_name, datas, .. } => {
[INFO] [stdout]     |                                ^^^^^^^^^ help: try ignoring the field: `case_name: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dname`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:570:22
[INFO] [stdout]     |
[INFO] [stdout] 570 |                 for (dname, dtm, _) in datas.iter() {
[INFO] [stdout]     |                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_dname`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pat`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:577:22
[INFO] [stdout]     |
[INFO] [stdout] 577 |                 for (pat, branch) in cases {
[INFO] [stdout]     |                      ^^^ help: if this is intentional, prefix it with an underscore: `_pat`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:594:18
[INFO] [stdout]     |
[INFO] [stdout] 594 |         for (_, (span, rtm, rval, rty, rvty, _)) in cxt.decl.iter() {
[INFO] [stdout]     |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `span`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:606:21
[INFO] [stdout]     |
[INFO] [stdout] 606 |         for (_, _, (span, vty)) in cxt.src_names.iter_all() {
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_alloc`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:854:13
[INFO] [stdout]     |
[INFO] [stdout] 854 |         let meta_alloc = (std::mem::size_of::<MetaEntry>() + 16 + 7) & !7;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_alloc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `meta_alloc`
[INFO] [stdout]    --> src/L13_namespace/mod.rs:854:13
[INFO] [stdout]     |
[INFO] [stdout] 854 |         let meta_alloc = (std::mem::size_of::<MetaEntry>() + 16 + 7) & !7;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_meta_alloc`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `url`
[INFO] [stdout]    --> src/lib.rs:529:29
[INFO] [stdout]     |
[INFO] [stdout] 529 |                         let url = params.uri.clone();
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `resp`
[INFO] [stdout]     --> src/lib.rs:1203:35
[INFO] [stdout]      |
[INFO] [stdout] 1203 |                 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/lib.rs:1222:62
[INFO] [stdout]      |
[INFO] [stdout] 1222 | ...                   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/lib.rs:1229:62
[INFO] [stdout]      |
[INFO] [stdout] 1229 | ...                   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/lib.rs:1236:62
[INFO] [stdout]      |
[INFO] [stdout] 1236 | ...                   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/lib.rs:1243:62
[INFO] [stdout]      |
[INFO] [stdout] 1243 | ...                   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: `url`
[INFO] [stdout]    --> src/lib.rs:529:29
[INFO] [stdout]     |
[INFO] [stdout] 529 |                         let url = params.uri.clone();
[INFO] [stdout]     |                             ^^^ help: if this is intentional, prefix it with an underscore: `_url`
[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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `severity`, `range`, `path_id`, and `msg` are never read
[INFO] [stdout]    --> src/parser_lib.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct Diagnostic {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 132 |     severity: Severity,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 133 |     range: (u32, u32),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 134 |     path_id: PathId,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 135 |     msg: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Diagnostic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser_lib.rs:295:10
[INFO] [stdout]     |
[INFO] [stdout] 295 | 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:312:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 312 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     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:342:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 342 |     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:362:8
[INFO] [stdout]     |
[INFO] [stdout] 362 | pub fn maybe<'a: 'b, 'b, T, P, N: 'a + Copy, E: Copy>(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pmatch_empty` is never used
[INFO] [stdout]    --> src/parser_lib.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub fn pmatch_empty<'a, P: Pattern + Copy>(pat: P) -> impl Parser<Input<'a>, Span<&'a str>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser_lib.rs:442:11
[INFO] [stdout]     |
[INFO] [stdout] 442 | 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:285:10
[INFO] [stdout]     |
[INFO] [stdout] 285 | 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:288:10
[INFO] [stdout]     |
[INFO] [stdout] 288 | 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:305:12
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 305 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     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:335:12
[INFO] [stdout]     |
[INFO] [stdout] 334 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 335 |     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:415:11
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub trait AstDebug {
[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: unused variable: `resp`
[INFO] [stdout]     --> src/lib.rs:1203:35
[INFO] [stdout]      |
[INFO] [stdout] 1203 |                 Message::Response(resp) => {
[INFO] [stdout]      |                                   ^^^^ help: if this is intentional, prefix it with an underscore: `_resp`
[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: unused variable: `not`
[INFO] [stdout]     --> src/lib.rs:1222:62
[INFO] [stdout]      |
[INFO] [stdout] 1222 | ...                   Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]      |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[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: unused variable: `not`
[INFO] [stdout]     --> src/lib.rs:1229:62
[INFO] [stdout]      |
[INFO] [stdout] 1229 | ...                   Err(ExtractError::MethodMismatch(not)) =>(),
[INFO] [stdout]      |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[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: unused variable: `not`
[INFO] [stdout]     --> src/lib.rs:1236:62
[INFO] [stdout]      |
[INFO] [stdout] 1236 | ...                   Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]      |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[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: unused variable: `not`
[INFO] [stdout]     --> src/lib.rs:1243:62
[INFO] [stdout]      |
[INFO] [stdout] 1243 | ...                   Err(ExtractError::MethodMismatch(not)) => (),
[INFO] [stdout]      |                                                        ^^^ help: if this is intentional, prefix it with an underscore: `_not`
[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: 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: 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:104:4
[INFO] [stdout]     |
[INFO] [stdout] 104 | 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:131:4
[INFO] [stdout]     |
[INFO] [stdout] 131 | 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:141:4
[INFO] [stdout]     |
[INFO] [stdout] 141 | 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:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 | pub fn lex(input: Span<&str>) -> Option<(Input<'_>, Vec<Token<'_>>)> {
[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: 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: 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: 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: 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: 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: 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: 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: 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: 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 `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 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | enum UnifyError {
[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: 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | enum UnifyError {
[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: 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[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: 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | enum UnifyError {
[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: 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:216:1
[INFO] [stdout]     |
[INFO] [stdout] 216 | enum UnifyError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[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 `name`, `typ`, `body`, `typ_pretty`, and `body_pretty` are never read
[INFO] [stdout]   --> src/L11_macro/mod.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 44 |     Def {
[INFO] [stdout]    |     --- fields in this variant
[INFO] [stdout] 45 |         name: Span<String>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 46 |         typ: Rc<Val>,
[INFO] [stdout]    |         ^^^
[INFO] [stdout] 47 |         body: Rc<Val>,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 48 |         typ_pretty: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 49 |         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: fields `0` and `2` are never read
[INFO] [stdout]   --> src/L11_macro/mod.rs:51:13
[INFO] [stdout]    |
[INFO] [stdout] 51 |     Println(Rc<Tm>, String, Span<()>),
[INFO] [stdout]    |     ------- ^^^^^^          ^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     fields in this variant
[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] 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] 51 -     Println(Rc<Tm>, String, Span<()>),
[INFO] [stdout] 51 +     Println((), String, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_err` is never used
[INFO] [stdout]    --> src/L11_macro/mod.rs:234:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | impl IError {
[INFO] [stdout]     | ----------- method in this implementation
[INFO] [stdout] 234 |     pub fn to_err(self) -> Error {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L11_macro/parser/mod.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |     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] 18 -     Expect(TokenKind),
[INFO] [stdout] 18 +     Expect(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_until_inner` is never used
[INFO] [stdout]   --> src/L11_macro/parser/mod.rs:34:4
[INFO] [stdout]    |
[INFO] [stdout] 34 | fn skip_until_inner<'a: 'b, 'b>(kind: TokenKind) -> impl Fn(&'b [TokenNode<'a>]) -> &'b [TokenNode<'a>] + Copy {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prefix_binding_power` is never used
[INFO] [stdout]    --> src/L11_macro/parser/mod.rs:418:4
[INFO] [stdout]     |
[INFO] [stdout] 418 | fn prefix_binding_power(op: &Span<String>) -> ((), u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parser_test` is never used
[INFO] [stdout]     --> src/L11_macro/parser/mod.rs:1315:8
[INFO] [stdout]      |
[INFO] [stdout] 1315 | pub fn parser_test(input: &str, id: u32) -> Option<(Vec<Raw>, Vec<IError>)> {
[INFO] [stdout]      |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Eof` is never constructed
[INFO] [stdout]   --> src/L11_macro/parser/lex.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout]  4 | pub enum TokenKind {
[INFO] [stdout]    |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 48 |     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 `RepetitionOp` is never used
[INFO] [stdout]    --> src/L11_macro/parser/macros.rs:102:10
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum RepetitionOp {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[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: methods `update_at` and `update_by_cxt` are never used
[INFO] [stdout]   --> src/L11_macro/syntax.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 14 | impl Locals {
[INFO] [stdout]    | ----------- methods in this implementation
[INFO] [stdout] 15 |     pub fn update_at(&self, x: usize, v: Rc<Tm>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     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: field `1` is never read
[INFO] [stdout]   --> src/L12_canonical/mod.rs:31:21
[INFO] [stdout]    |
[INFO] [stdout] 31 |     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] 31 -     Solved(Rc<Val>, Rc<VTy>),
[INFO] [stdout] 31 +     Solved(Rc<Val>, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L12_canonical/mod.rs:39:6
[INFO] [stdout]    |
[INFO] [stdout] 39 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `extract_decl_name` is never used
[INFO] [stdout]    --> src/L12_canonical/mod.rs:285:4
[INFO] [stdout]     |
[INFO] [stdout] 285 | fn extract_decl_name(tm: &Tm) -> Option<Span<SmolStr>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `collect_app_args` is never used
[INFO] [stdout]    --> src/L12_canonical/mod.rs:293:4
[INFO] [stdout]     |
[INFO] [stdout] 293 | fn collect_app_args(tm: &Tm) -> Vec<Rc<Tm>> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_until_inner` is never used
[INFO] [stdout]   --> src/L12_canonical/parser/mod.rs:35:4
[INFO] [stdout]    |
[INFO] [stdout] 35 | fn skip_until_inner<'a: 'b, 'b>(kind: TokenKind) -> impl Fn(&'b [TokenNode<'a>]) -> &'b [TokenNode<'a>] + Copy {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `prefix_binding_power` is never used
[INFO] [stdout]    --> src/L12_canonical/parser/mod.rs:465:4
[INFO] [stdout]     |
[INFO] [stdout] 465 | fn prefix_binding_power(op: &Span<SmolStr>) -> ((), u8) {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Var` is never used
[INFO] [stdout]   --> src/L12_canonical/pattern_match.rs:17:6
[INFO] [stdout]    |
[INFO] [stdout] 17 | type Var = i32;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L12_canonical/pattern_match.rs:23:17
[INFO] [stdout]    |
[INFO] [stdout] 23 |     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] 23 -     Unreachable(Raw),
[INFO] [stdout] 23 +     Unreachable(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/L12_canonical/pattern_match.rs:24:15
[INFO] [stdout]    |
[INFO] [stdout] 24 |     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] 24 -     Unmatched(Pattern),
[INFO] [stdout] 24 +     Unmatched(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/L12_canonical/typeclass.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 98 | impl Synth {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] 99 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `BD` is never used
[INFO] [stdout]   --> src/L13_namespace/mod.rs:48:6
[INFO] [stdout]    |
[INFO] [stdout] 48 | enum BD {
[INFO] [stdout]    |      ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `list_other_nodes`, `smolstr_unique`, and `smolstr_heap_est` are never read
[INFO] [stdout]    --> src/L13_namespace/mod.rs:419:5
[INFO] [stdout]     |
[INFO] [stdout] 411 | struct DetailCounts {
[INFO] [stdout]     |        ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 419 |     list_other_nodes: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 420 |     smolstr_unique: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout] 421 |     smolstr_heap_est: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `walk_tm` and `count_smolstr` are never used
[INFO] [stdout]    --> src/L13_namespace/mod.rs:500:8
[INFO] [stdout]     |
[INFO] [stdout] 427 | impl DetailCounts {
[INFO] [stdout]     | ----------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 500 |     fn walk_tm(&mut self, tm: &Rc<Tm>, visited: &mut std::collections::HashSet<usize>) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 654 |     fn count_smolstr(&mut self, s: &SmolStr, visited: &mut std::collections::HashSet<usize>) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `run_multi_into_test` is never used
[INFO] [stdout]     --> src/L13_namespace/mod.rs:3012:4
[INFO] [stdout]      |
[INFO] [stdout] 3012 | fn run_multi_into_test(input: &str) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `mk_multi_into_test` is never used
[INFO] [stdout]     --> src/L13_namespace/mod.rs:3023:4
[INFO] [stdout]      |
[INFO] [stdout] 3023 | fn mk_multi_into_test(extra: &str) -> String {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tm_lam` is never used
[INFO] [stdout]    --> src/L13_namespace/cxt.rs:262:15
[INFO] [stdout]     |
[INFO] [stdout] 262 | pub(super) fn tm_lam(names: &[&str], inner: Rc<Tm>) -> Rc<Tm> {
[INFO] [stdout]     |               ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `skip_until_inner` is never used
[INFO] [stdout]   --> src/L13_namespace/parser/mod.rs:30:4
[INFO] [stdout]    |
[INFO] [stdout] 30 | fn skip_until_inner<'a: 'b, 'b>(kind: TokenKind) -> impl Fn(&'b [TokenNode<'a>]) -> &'b [TokenNode<'a>] + Copy {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `Var` is never used
[INFO] [stdout]   --> src/L13_namespace/pattern_match.rs:14:6
[INFO] [stdout]    |
[INFO] [stdout] 14 | type Var = i32;
[INFO] [stdout]    |      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `goal`, `instances`, `index`, and `assertion_idx` are never read
[INFO] [stdout]   --> src/L13_namespace/typeclass.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct GeneratorNode {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 31 |     goal: Assertion,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 32 |     instances: Vec<Instance>,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 33 |     index: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 34 |     assertion_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `GeneratorNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `goal`, `subgoals`, `lvl`, and `assertion_idx` are never read
[INFO] [stdout]   --> src/L13_namespace/typeclass.rs:41:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct ConsumerNode {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 41 |     goal: Assertion,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 42 |     subgoals: List<Assertion>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 43 |     lvl: Span<SmolStr>,
[INFO] [stdout]    |     ^^^
[INFO] [stdout] 44 |     assertion_idx: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ConsumerNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Root` and `ConsumerNode` are never constructed
[INFO] [stdout]   --> src/L13_namespace/typeclass.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 55 | pub enum Waiter {
[INFO] [stdout]    |          ------ variants in this enum
[INFO] [stdout] 56 |     Root,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 57 |     ConsumerNode(ConsumerNode),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Waiter` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `waiters` is never read
[INFO] [stdout]   --> src/L13_namespace/typeclass.rs:73:9
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub struct TableEntry {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] 73 |     pub waiters: Vec<Waiter>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TableEntry` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `root_answer` is never read
[INFO] [stdout]   --> src/L13_namespace/typeclass.rs:93:9
[INFO] [stdout]    |
[INFO] [stdout] 79 | pub struct Synth {
[INFO] [stdout]    |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 93 |     pub root_answer: Option<Span<SmolStr>>,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Synth` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `uncons` is never used
[INFO] [stdout]    --> src/L13_namespace/typeclass.rs:115:4
[INFO] [stdout]     |
[INFO] [stdout] 115 | fn uncons<T: Clone>(xs: &List<T>) -> Option<(T, List<T>)> {
[INFO] [stdout]     |    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/L13_namespace/typeclass.rs:128:12
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl Synth {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] 128 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn clean(&mut self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 335 |     fn try_answer(&mut self, subgoal: &Assertion, answer: &Assertion) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     fn try_resolve(
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |     fn find_assertion_entry(&self, target: &Assertion) -> Option<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 395 |     pub fn synth(&mut self, assertion: Assertion) -> Option<Span<SmolStr>> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 451 |     fn new_subgoal(&mut self, subgoal: &Assertion, waiter: &Waiter) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 470 |     fn consume(&mut self, consumer_node: ConsumerNode) {
[INFO] [stdout]     |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L01_eval` should have a snake case name
[INFO] [stdout]   --> src/lib.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | 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/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | 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/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | 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/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | 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/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | 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/lib.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | 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/lib.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | 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/lib.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | 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/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 | 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/lib.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | 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/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | 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/lib.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | mod L11_macro;
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to snake case: `l11_macro`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L12_canonical` should have a snake case name
[INFO] [stdout]   --> src/lib.rs:25:9
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub mod L12_canonical;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `l12_canonical`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `L13_namespace` should have a snake case name
[INFO] [stdout]   --> src/lib.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub mod L13_namespace;
[INFO] [stdout]    |         ^^^^^^^^^^^^^ help: convert the identifier to snake case: `l13_namespace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `severity`, `range`, `path_id`, and `msg` are never read
[INFO] [stdout]    --> src/parser_lib.rs:132:5
[INFO] [stdout]     |
[INFO] [stdout] 131 | pub struct Diagnostic {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 132 |     severity: Severity,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 133 |     range: (u32, u32),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 134 |     path_id: PathId,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 135 |     msg: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Diagnostic` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Maybe` is never used
[INFO] [stdout]    --> src/parser_lib.rs:295:10
[INFO] [stdout]     |
[INFO] [stdout] 295 | 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:312:12
[INFO] [stdout]     |
[INFO] [stdout] 311 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 312 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 321 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 330 |     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:342:12
[INFO] [stdout]     |
[INFO] [stdout] 341 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 342 |     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:362:8
[INFO] [stdout]     |
[INFO] [stdout] 362 | pub fn maybe<'a: 'b, 'b, T, P, N: 'a + Copy, E: Copy>(
[INFO] [stdout]     |        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pmatch_empty` is never used
[INFO] [stdout]    --> src/parser_lib.rs:401:8
[INFO] [stdout]     |
[INFO] [stdout] 401 | pub fn pmatch_empty<'a, P: Pattern + Copy>(pat: P) -> impl Parser<Input<'a>, Span<&'a str>> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AstDebug` is never used
[INFO] [stdout]    --> src/parser_lib.rs:442:11
[INFO] [stdout]     |
[INFO] [stdout] 442 | 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:285:10
[INFO] [stdout]     |
[INFO] [stdout] 285 | 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:288:10
[INFO] [stdout]     |
[INFO] [stdout] 288 | 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:305:12
[INFO] [stdout]     |
[INFO] [stdout] 304 | impl<T, E> Maybe<T, E> {
[INFO] [stdout]     | ---------------------- methods in this implementation
[INFO] [stdout] 305 |     pub fn map<U, F>(self, mut f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 314 |     pub fn and_then<U, F>(self, f: F) -> Maybe<U, E>
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     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:335:12
[INFO] [stdout]     |
[INFO] [stdout] 334 | impl<T, E: Debug> Maybe<T, E> {
[INFO] [stdout]     | ----------------------------- method in this implementation
[INFO] [stdout] 335 |     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:415:11
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub trait AstDebug {
[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
[WARN] too many lines in the log, truncating it
