[INFO] cloning repository https://github.com/Ferdi265/lambda.rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Ferdi265/lambda.rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFerdi265%2Flambda.rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFerdi265%2Flambda.rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 76ddd964aa677d49107d5b55e21cae7986c0e49e
[INFO] checking Ferdi265/lambda.rs against try#2b39fe756f52bc2825bf5b2bfc385cab922dae10 for pr-143011
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFerdi265%2Flambda.rs" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Ferdi265/lambda.rs
[INFO] finished tweaking git repo https://github.com/Ferdi265/lambda.rs
[INFO] tweaked toml for git repo https://github.com/Ferdi265/lambda.rs written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Ferdi265/lambda.rs on toolchain 2b39fe756f52bc2825bf5b2bfc385cab922dae10
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Ferdi265/lambda.rs 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" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ea0ccfde087870d1aecd1d9e7eddd82703b359cd26899276f82b86f3a3bc7d65
[INFO] running `Command { std: "docker" "start" "-a" "ea0ccfde087870d1aecd1d9e7eddd82703b359cd26899276f82b86f3a3bc7d65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ea0ccfde087870d1aecd1d9e7eddd82703b359cd26899276f82b86f3a3bc7d65", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ea0ccfde087870d1aecd1d9e7eddd82703b359cd26899276f82b86f3a3bc7d65", kill_on_drop: false }`
[INFO] [stdout] ea0ccfde087870d1aecd1d9e7eddd82703b359cd26899276f82b86f3a3bc7d65
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+2b39fe756f52bc2825bf5b2bfc385cab922dae10" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5f804c27bd5a72ad09cde8f574b1e921d7eca8936d4a90122cd09eaae842cd34
[INFO] running `Command { std: "docker" "start" "-a" "5f804c27bd5a72ad09cde8f574b1e921d7eca8936d4a90122cd09eaae842cd34", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.31
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling libc v0.2.71
[INFO] [stderr]    Compiling ucd-trie v0.1.3
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]     Checking unicode-width v0.1.7
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling unicode-segmentation v1.6.0
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking vec_map v0.8.2
[INFO] [stderr]     Checking strsim v0.8.0
[INFO] [stderr]     Checking lazy_static v1.4.0
[INFO] [stderr]     Checking pest v2.1.3
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.2
[INFO] [stderr]    Compiling proc-macro-error v1.0.2
[INFO] [stderr]    Compiling heck v0.3.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.1
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling pest_meta v2.1.3
[INFO] [stderr]    Compiling syn-mid v0.5.0
[INFO] [stderr]    Compiling pest_generator v2.1.3
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]    Compiling structopt-derive v0.4.8
[INFO] [stderr]     Checking structopt v0.3.15
[INFO] [stderr]     Checking lambda v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(specialization)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
[INFO] [stdout]   = help: consider using `min_specialization` instead, which is more stable and complete
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
[INFO] [stdout]  --> src/lib.rs:2:12
[INFO] [stdout]   |
[INFO] [stdout] 2 | #![feature(specialization)]
[INFO] [stdout]   |            ^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
[INFO] [stdout]   = help: consider using `min_specialization` instead, which is more stable and complete
[INFO] [stdout]   = note: `#[warn(incomplete_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:18:56
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |                                                        ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/parser/test.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |            ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Lambda<'_, NoData>, error::Error>`
[INFO] [stdout]   --> src/parser/test.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | /     assert_eq!(
[INFO] [stdout] 17 | |         LambdaParser::parse_lambda("a -> b"),
[INFO] [stdout] 18 | |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 19 | |             Expression::Identifier("b")
[INFO] [stdout] 20 | |         ]}})
[INFO] [stdout] 21 | |     );
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |_____|
[INFO] [stdout]    | |_____Result<generic::Lambda<'_, NoData>, error::Error>
[INFO] [stdout]    |       Result<generic::Lambda<'_, NoData>, error::Error>
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/ast/generic.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Lambda<'i, D: ASTData<'i>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Lambda<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/ast/generic.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 + #[derive(PartialEq)]
[INFO] [stdout] 20 | pub struct Lambda<'i, D: ASTData<'i>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:24:56
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |                                                        ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:25:76
[INFO] [stdout]    |
[INFO] [stdout] 25 |             Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]    |                                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/parser/test.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 |             Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]    |                                ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:25:32
[INFO] [stdout]    |
[INFO] [stdout] 25 |               Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]    |  _____________------------------_^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |             arguments to this enum variant are incorrect
[INFO] [stdout] 26 | |                 Expression::Identifier("c")
[INFO] [stdout] 27 | |             ]}})
[INFO] [stdout]    | |_______________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]               found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 27 |             ]}}.into())
[INFO] [stdout]    |                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/parser/test.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |            ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Lambda<'_, NoData>, error::Error>`
[INFO] [stdout]   --> src/parser/test.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     assert_eq!(
[INFO] [stdout] 23 | |         LambdaParser::parse_lambda("a -> b -> c"),
[INFO] [stdout] 24 | |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 25 | |             Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |         ]}})
[INFO] [stdout] 29 | |     );
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |_____|
[INFO] [stdout]    | |_____Result<generic::Lambda<'_, NoData>, error::Error>
[INFO] [stdout]    |       Result<generic::Lambda<'_, NoData>, error::Error>
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/ast/generic.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Lambda<'i, D: ASTData<'i>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Lambda<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/ast/generic.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 + #[derive(PartialEq)]
[INFO] [stdout] 20 | pub struct Lambda<'i, D: ASTData<'i>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:32:56
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |                                                        ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/parser/test.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |            ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Lambda<'_, NoData>, error::Error>`
[INFO] [stdout]   --> src/parser/test.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | /     assert_eq!(
[INFO] [stdout] 31 | |         LambdaParser::parse_lambda("a -> b c"),
[INFO] [stdout] 32 | |         Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 33 | |             Expression::Identifier("b"),
[INFO] [stdout] 34 | |             Expression::Identifier("c")
[INFO] [stdout] 35 | |         ]}})
[INFO] [stdout] 36 | |     );
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |_____|
[INFO] [stdout]    | |_____Result<generic::Lambda<'_, NoData>, error::Error>
[INFO] [stdout]    |       Result<generic::Lambda<'_, NoData>, error::Error>
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/ast/generic.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Lambda<'i, D: ASTData<'i>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Lambda<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/ast/generic.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 + #[derive(PartialEq)]
[INFO] [stdout] 20 | pub struct Lambda<'i, D: ASTData<'i>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:45:26
[INFO] [stdout]    |
[INFO] [stdout] 45 |         Ok(Application { expressions: vec![
[INFO] [stdout]    |                          ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:46:51
[INFO] [stdout]    |
[INFO] [stdout] 46 |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:46:37
[INFO] [stdout]    |
[INFO] [stdout] 46 |               Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |  _____________-----------------------_^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |             arguments to this enum variant are incorrect
[INFO] [stdout] 47 | |                 Expression::Identifier("a")
[INFO] [stdout] 48 | |             ]})
[INFO] [stdout]    | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 48 |             ]}.into())
[INFO] [stdout]    |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Application<'_, NoData>, error::Error>`
[INFO] [stdout]   --> src/parser/test.rs:43:5
[INFO] [stdout]    |
[INFO] [stdout] 43 | /     assert_eq!(
[INFO] [stdout] 44 | |         LambdaParser::parse_parenthesis("((a))"),
[INFO] [stdout] 45 | |         Ok(Application { expressions: vec![
[INFO] [stdout] 46 | |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] ...  |
[INFO] [stdout] 49 | |         ]})
[INFO] [stdout] 50 | |     );
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |_____|
[INFO] [stdout]    | |_____Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]    |       Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Application<'_, NoData>`
[INFO] [stdout]   --> src/ast/generic.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Application<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/ast/generic.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 + #[derive(PartialEq)]
[INFO] [stdout] 34 | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:53:26
[INFO] [stdout]    |
[INFO] [stdout] 53 |         Ok(Application { expressions: vec![
[INFO] [stdout]    |                          ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:55:51
[INFO] [stdout]    |
[INFO] [stdout] 55 |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:55:37
[INFO] [stdout]    |
[INFO] [stdout] 55 |               Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |  _____________-----------------------_^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |             arguments to this enum variant are incorrect
[INFO] [stdout] 56 | |                 Expression::Identifier("b"),
[INFO] [stdout] 57 | |                 Expression::Identifier("c"),
[INFO] [stdout] 58 | |             ]}),
[INFO] [stdout]    | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 58 |             ]}.into()),
[INFO] [stdout]    |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:59:51
[INFO] [stdout]    |
[INFO] [stdout] 59 |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:60:55
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |                                                       ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:60:41
[INFO] [stdout]    |
[INFO] [stdout] 60 |                   Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |  _________________-----------------------_^
[INFO] [stdout]    | |                 |
[INFO] [stdout]    | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 61 | |                     Expression::Identifier("d")
[INFO] [stdout] 62 | |                 ]}),
[INFO] [stdout]    | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 62 |                 ]}.into()),
[INFO] [stdout]    |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:59:37
[INFO] [stdout]    |
[INFO] [stdout] 59 |               Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |  _____________-----------------------_^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |             arguments to this enum variant are incorrect
[INFO] [stdout] 60 | |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 61 | |                     Expression::Identifier("d")
[INFO] [stdout] 62 | |                 ]}),
[INFO] [stdout] 63 | |                 Expression::Identifier("e")
[INFO] [stdout] 64 | |             ]})
[INFO] [stdout]    | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 64 |             ]}.into())
[INFO] [stdout]    |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Application<'_, NoData>, error::Error>`
[INFO] [stdout]   --> src/parser/test.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 | /     assert_eq!(
[INFO] [stdout] 52 | |         LambdaParser::parse_parenthesis("(a (b c) ((d) e))"),
[INFO] [stdout] 53 | |         Ok(Application { expressions: vec![
[INFO] [stdout] 54 | |             Expression::Identifier("a"),
[INFO] [stdout] ...  |
[INFO] [stdout] 65 | |         ]})
[INFO] [stdout] 66 | |     );
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |_____|
[INFO] [stdout]    | |_____Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]    |       Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Application<'_, NoData>`
[INFO] [stdout]   --> src/ast/generic.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Application<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/ast/generic.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 + #[derive(PartialEq)]
[INFO] [stdout] 34 | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:73:75
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Ok(Expression::Lambda(Lambda { argument: "e", body: Application { expressions: vec![
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:74:51
[INFO] [stdout]    |
[INFO] [stdout] 74 |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:75:80
[INFO] [stdout]    |
[INFO] [stdout] 75 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/parser/test.rs:75:36
[INFO] [stdout]    |
[INFO] [stdout] 75 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:75:36
[INFO] [stdout]    |
[INFO] [stdout] 75 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |  _________________------------------_^
[INFO] [stdout]    | |                 |
[INFO] [stdout]    | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 76 | |                     Expression::Identifier("a")
[INFO] [stdout] 77 | |                 ]}})
[INFO] [stdout]    | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]               found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 ]}}.into())
[INFO] [stdout]    |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:74:37
[INFO] [stdout]    |
[INFO] [stdout] 74 |               Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |  _____________-----------------------_^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |             arguments to this enum variant are incorrect
[INFO] [stdout] 75 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 76 | |                     Expression::Identifier("a")
[INFO] [stdout] 77 | |                 ]}})
[INFO] [stdout] 78 | |             ]}),
[INFO] [stdout]    | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 78 |             ]}.into()),
[INFO] [stdout]    |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:79:51
[INFO] [stdout]    |
[INFO] [stdout] 79 |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |                                                   ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:80:80
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 Expression::Lambda(Lambda { argument: "c", body: Application { expressions: vec![
[INFO] [stdout]    |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/parser/test.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 |                 Expression::Lambda(Lambda { argument: "c", body: Application { expressions: vec![
[INFO] [stdout]    |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:80:36
[INFO] [stdout]    |
[INFO] [stdout] 80 |                   Expression::Lambda(Lambda { argument: "c", body: Application { expressions: vec![
[INFO] [stdout]    |  _________________------------------_^
[INFO] [stdout]    | |                 |
[INFO] [stdout]    | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 81 | |                     Expression::Identifier("c")
[INFO] [stdout] 82 | |                 ]}})
[INFO] [stdout]    | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]               found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 ]}}.into())
[INFO] [stdout]    |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:79:37
[INFO] [stdout]    |
[INFO] [stdout] 79 |               Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]    |  _____________-----------------------_^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |             arguments to this enum variant are incorrect
[INFO] [stdout] 80 | |                 Expression::Lambda(Lambda { argument: "c", body: Application { expressions: vec![
[INFO] [stdout] 81 | |                     Expression::Identifier("c")
[INFO] [stdout] 82 | |                 ]}})
[INFO] [stdout] 83 | |             ]}),
[INFO] [stdout]    | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 83 |             ]}.into()),
[INFO] [stdout]    |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]   --> src/parser/test.rs:73:31
[INFO] [stdout]    |
[INFO] [stdout] 73 |         Ok(Expression::Lambda(Lambda { argument: "e", body: Application { expressions: vec![
[INFO] [stdout]    |                               ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:73:31
[INFO] [stdout]    |
[INFO] [stdout] 73 |           Ok(Expression::Lambda(Lambda { argument: "e", body: Application { expressions: vec![
[INFO] [stdout]    |  ____________------------------_^
[INFO] [stdout]    | |            |
[INFO] [stdout]    | |            arguments to this enum variant are incorrect
[INFO] [stdout] 74 | |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 75 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 76 | |                     Expression::Identifier("a")
[INFO] [stdout] ...  |
[INFO] [stdout] 84 | |             Expression::Identifier("e")
[INFO] [stdout] 85 | |         ]}}))
[INFO] [stdout]    | |___________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]               found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> src/ast/generic.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 85 |         ]}}.into()))
[INFO] [stdout]    |            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Expression<'_, NoData>, error::Error>`
[INFO] [stdout]   --> src/parser/test.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 | /     assert_eq!(
[INFO] [stdout] 72 | |         LambdaParser::parse_expression("e -> (a -> a) (c -> c) e"),
[INFO] [stdout] 73 | |         Ok(Expression::Lambda(Lambda { argument: "e", body: Application { expressions: vec![
[INFO] [stdout] 74 | |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] ...  |
[INFO] [stdout] 85 | |         ]}}))
[INFO] [stdout] 86 | |     );
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |_____|
[INFO] [stdout]    | |_____Result<generic::Expression<'_, NoData>, error::Error>
[INFO] [stdout]    |       Result<generic::Expression<'_, NoData>, error::Error>
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Expression<'_, NoData>`
[INFO] [stdout]   --> src/ast/generic.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum Expression<'i, D: ASTData<'i>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Expression<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/ast/generic.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 + #[derive(PartialEq)]
[INFO] [stdout] 27 | pub enum Expression<'i, D: ASTData<'i>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]   --> src/parser/test.rs:93:26
[INFO] [stdout]    |
[INFO] [stdout] 93 |         Ok(Application { expressions: vec![
[INFO] [stdout]    |                          ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]    |
[INFO] [stdout]    = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Application<'_, NoData>, error::Error>`
[INFO] [stdout]   --> src/parser/test.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 | /     assert_eq!(
[INFO] [stdout] 92 | |         LambdaParser::parse_application("a b"),
[INFO] [stdout] 93 | |         Ok(Application { expressions: vec![
[INFO] [stdout] 94 | |             Expression::Identifier("a"),
[INFO] [stdout] 95 | |             Expression::Identifier("b")
[INFO] [stdout] 96 | |         ]})
[INFO] [stdout] 97 | |     );
[INFO] [stdout]    | |     ^
[INFO] [stdout]    | |_____|
[INFO] [stdout]    | |_____Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]    |       Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]    |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Application<'_, NoData>`
[INFO] [stdout]   --> src/ast/generic.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Application<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/ast/generic.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 + #[derive(PartialEq)]
[INFO] [stdout] 34 | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:100:26
[INFO] [stdout]     |
[INFO] [stdout] 100 |         Ok(Application { expressions: vec![
[INFO] [stdout]     |                          ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Application<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout] 98  | /     assert_eq!(
[INFO] [stdout] 99  | |         LambdaParser::parse_application("a b c"),
[INFO] [stdout] 100 | |         Ok(Application { expressions: vec![
[INFO] [stdout] 101 | |             Expression::Identifier("a"),
[INFO] [stdout] ...   |
[INFO] [stdout] 104 | |         ]})
[INFO] [stdout] 105 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Application<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Application<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  + #[derive(PartialEq)]
[INFO] [stdout] 34  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:108:26
[INFO] [stdout]     |
[INFO] [stdout] 108 |         Ok(Application { expressions: vec![
[INFO] [stdout]     |                          ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:109:51
[INFO] [stdout]     |
[INFO] [stdout] 109 |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                   ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:109:37
[INFO] [stdout]     |
[INFO] [stdout] 109 |               Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _____________-----------------------_^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             arguments to this enum variant are incorrect
[INFO] [stdout] 110 | |                 Expression::Identifier("a"),
[INFO] [stdout] 111 | |                 Expression::Identifier("b"),
[INFO] [stdout] 112 | |             ]}),
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 112 |             ]}.into()),
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Application<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 | /     assert_eq!(
[INFO] [stdout] 107 | |         LambdaParser::parse_application("(a b) c"),
[INFO] [stdout] 108 | |         Ok(Application { expressions: vec![
[INFO] [stdout] 109 | |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] ...   |
[INFO] [stdout] 114 | |         ]})
[INFO] [stdout] 115 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Application<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Application<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  + #[derive(PartialEq)]
[INFO] [stdout] 34  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:118:26
[INFO] [stdout]     |
[INFO] [stdout] 118 |         Ok(Application { expressions: vec![
[INFO] [stdout]     |                          ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:120:51
[INFO] [stdout]     |
[INFO] [stdout] 120 |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                   ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:120:37
[INFO] [stdout]     |
[INFO] [stdout] 120 |               Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _____________-----------------------_^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             arguments to this enum variant are incorrect
[INFO] [stdout] 121 | |                 Expression::Identifier("b"),
[INFO] [stdout] 122 | |                 Expression::Identifier("c"),
[INFO] [stdout] 123 | |             ]})
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 123 |             ]}.into())
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Application<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 | /     assert_eq!(
[INFO] [stdout] 117 | |         LambdaParser::parse_application("a (b c)"),
[INFO] [stdout] 118 | |         Ok(Application { expressions: vec![
[INFO] [stdout] 119 | |             Expression::Identifier("a"),
[INFO] [stdout] ...   |
[INFO] [stdout] 124 | |         ]})
[INFO] [stdout] 125 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Application<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Application<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  + #[derive(PartialEq)]
[INFO] [stdout] 34  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:128:26
[INFO] [stdout]     |
[INFO] [stdout] 128 |         Ok(Application { expressions: vec![
[INFO] [stdout]     |                          ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:130:76
[INFO] [stdout]     |
[INFO] [stdout] 130 |             Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |             Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:130:32
[INFO] [stdout]     |
[INFO] [stdout] 130 |               Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________------------------_^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             arguments to this enum variant are incorrect
[INFO] [stdout] 131 | |                 Expression::Identifier("c")
[INFO] [stdout] 132 | |             ]}})
[INFO] [stdout]     | |_______________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 132 |             ]}}.into())
[INFO] [stdout]     |                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Application<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:126:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | /     assert_eq!(
[INFO] [stdout] 127 | |         LambdaParser::parse_application("a b -> c"),
[INFO] [stdout] 128 | |         Ok(Application { expressions: vec![
[INFO] [stdout] 129 | |             Expression::Identifier("a"),
[INFO] [stdout] ...   |
[INFO] [stdout] 133 | |         ]})
[INFO] [stdout] 134 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Application<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Application<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Application<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:33:1
[INFO] [stdout]     |
[INFO] [stdout] 33  + #[derive(PartialEq)]
[INFO] [stdout] 34  | pub struct Application<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:141:63
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Ok(Assignment { target: "ident", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:142:76
[INFO] [stdout]     |
[INFO] [stdout] 142 |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |               Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________------------------_^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             arguments to this enum variant are incorrect
[INFO] [stdout] 143 | |                 Expression::Identifier("a")
[INFO] [stdout] 144 | |             ]}})
[INFO] [stdout]     | |_______________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 144 |             ]}}.into())
[INFO] [stdout]     |                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:141:12
[INFO] [stdout]     |
[INFO] [stdout] 141 |         Ok(Assignment { target: "ident", value: Application { expressions: vec![
[INFO] [stdout]     |            ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Assignment<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 | /     assert_eq!(
[INFO] [stdout] 140 | |         LambdaParser::parse_assignment("ident = a -> a"),
[INFO] [stdout] 141 | |         Ok(Assignment { target: "ident", value: Application { expressions: vec![
[INFO] [stdout] 142 | |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] ...   |
[INFO] [stdout] 145 | |         ]}})
[INFO] [stdout] 146 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Assignment<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Assignment<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:40:1
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Assignment<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Assignment<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:40:1
[INFO] [stdout]     |
[INFO] [stdout] 40  + #[derive(PartialEq)]
[INFO] [stdout] 41  | pub struct Assignment<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:149:61
[INFO] [stdout]     |
[INFO] [stdout] 149 |         Ok(Assignment { target: "and", value: Application { expressions: vec![
[INFO] [stdout]     |                                                             ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:150:76
[INFO] [stdout]     |
[INFO] [stdout] 150 |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:151:80
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:151:36
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:151:36
[INFO] [stdout]     |
[INFO] [stdout] 151 |                   Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 152 | |                     Expression::Identifier("a"),
[INFO] [stdout] 153 | |                     Expression::Identifier("b"),
[INFO] [stdout] 154 | |                     Expression::Identifier("false")
[INFO] [stdout] 155 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:150:32
[INFO] [stdout]     |
[INFO] [stdout] 150 |               Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________------------------_^
[INFO] [stdout]     | |             |
[INFO] [stdout]     | |             arguments to this enum variant are incorrect
[INFO] [stdout] 151 | |                 Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 152 | |                     Expression::Identifier("a"),
[INFO] [stdout] 153 | |                     Expression::Identifier("b"),
[INFO] [stdout] 154 | |                     Expression::Identifier("false")
[INFO] [stdout] 155 | |                 ]}})
[INFO] [stdout] 156 | |             ]}})
[INFO] [stdout]     | |_______________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 156 |             ]}}.into())
[INFO] [stdout]     |                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:149:12
[INFO] [stdout]     |
[INFO] [stdout] 149 |         Ok(Assignment { target: "and", value: Application { expressions: vec![
[INFO] [stdout]     |            ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Assignment<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 147 | /     assert_eq!(
[INFO] [stdout] 148 | |         LambdaParser::parse_assignment("and = a -> b -> a b false"),
[INFO] [stdout] 149 | |         Ok(Assignment { target: "and", value: Application { expressions: vec![
[INFO] [stdout] 150 | |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] ...   |
[INFO] [stdout] 157 | |         ]}})
[INFO] [stdout] 158 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Assignment<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Assignment<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:40:1
[INFO] [stdout]     |
[INFO] [stdout] 40  | pub struct Assignment<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Assignment<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:40:1
[INFO] [stdout]     |
[INFO] [stdout] 40  + #[derive(PartialEq)]
[INFO] [stdout] 41  | pub struct Assignment<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:166:63
[INFO] [stdout]     |
[INFO] [stdout] 166 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:167:80
[INFO] [stdout]     |
[INFO] [stdout] 167 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:168:84
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:168:40
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:168:40
[INFO] [stdout]     |
[INFO] [stdout] 168 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 169 | |                         Expression::Identifier("a")
[INFO] [stdout] 170 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 170 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:167:36
[INFO] [stdout]     |
[INFO] [stdout] 167 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:167:36
[INFO] [stdout]     |
[INFO] [stdout] 167 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 168 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 169 | |                         Expression::Identifier("a")
[INFO] [stdout] 170 | |                     ]}})
[INFO] [stdout] 171 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:166:13
[INFO] [stdout]     |
[INFO] [stdout] 166 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout] 165 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 | /     assert_eq!(
[INFO] [stdout] 164 | |         LambdaParser::parse_program("true = a -> b -> a"),
[INFO] [stdout] 165 | |         Ok(Program { assignments: vec![
[INFO] [stdout] 166 | |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout] ...   |
[INFO] [stdout] 173 | |         ]})
[INFO] [stdout] 174 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:180:63
[INFO] [stdout]     |
[INFO] [stdout] 180 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:181:80
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:182:84
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:182:40
[INFO] [stdout]     |
[INFO] [stdout] 182 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:182:40
[INFO] [stdout]     |
[INFO] [stdout] 182 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 183 | |                         Expression::Identifier("a")
[INFO] [stdout] 184 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:181:36
[INFO] [stdout]     |
[INFO] [stdout] 181 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:181:36
[INFO] [stdout]     |
[INFO] [stdout] 181 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 182 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 183 | |                         Expression::Identifier("a")
[INFO] [stdout] 184 | |                     ]}})
[INFO] [stdout] 185 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 185 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:179:12
[INFO] [stdout]     |
[INFO] [stdout] 179 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:175:5
[INFO] [stdout]     |
[INFO] [stdout] 175 | /     assert_eq!(
[INFO] [stdout] 176 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 177 | |             true = a -> b -> a
[INFO] [stdout] 178 | |         "),
[INFO] [stdout] ...   |
[INFO] [stdout] 187 | |         ]})
[INFO] [stdout] 188 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:192:63
[INFO] [stdout]     |
[INFO] [stdout] 192 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:193:80
[INFO] [stdout]     |
[INFO] [stdout] 193 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:194:84
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:194:40
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:194:40
[INFO] [stdout]     |
[INFO] [stdout] 194 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 195 | |                         Expression::Identifier("a")
[INFO] [stdout] 196 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 196 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:193:36
[INFO] [stdout]     |
[INFO] [stdout] 193 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:193:36
[INFO] [stdout]     |
[INFO] [stdout] 193 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 194 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 195 | |                         Expression::Identifier("a")
[INFO] [stdout] 196 | |                     ]}})
[INFO] [stdout] 197 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 197 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:192:13
[INFO] [stdout]     |
[INFO] [stdout] 192 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:199:64
[INFO] [stdout]     |
[INFO] [stdout] 199 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:200:80
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:201:84
[INFO] [stdout]     |
[INFO] [stdout] 201 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:201:40
[INFO] [stdout]     |
[INFO] [stdout] 201 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:201:40
[INFO] [stdout]     |
[INFO] [stdout] 201 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 202 | |                         Expression::Identifier("b")
[INFO] [stdout] 203 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 203 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:200:36
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:200:36
[INFO] [stdout]     |
[INFO] [stdout] 200 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 201 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 202 | |                         Expression::Identifier("b")
[INFO] [stdout] 203 | |                     ]}})
[INFO] [stdout] 204 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 204 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:199:13
[INFO] [stdout]     |
[INFO] [stdout] 199 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:191:12
[INFO] [stdout]     |
[INFO] [stdout] 191 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:189:5
[INFO] [stdout]     |
[INFO] [stdout] 189 | /     assert_eq!(
[INFO] [stdout] 190 | |         LambdaParser::parse_program("true = a -> b -> a\nfalse = a -> b -> b"),
[INFO] [stdout] 191 | |         Ok(Program { assignments: vec![
[INFO] [stdout] 192 | |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout] ...   |
[INFO] [stdout] 206 | |         ]})
[INFO] [stdout] 207 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:215:63
[INFO] [stdout]     |
[INFO] [stdout] 215 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:216:80
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:217:84
[INFO] [stdout]     |
[INFO] [stdout] 217 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:217:40
[INFO] [stdout]     |
[INFO] [stdout] 217 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:217:40
[INFO] [stdout]     |
[INFO] [stdout] 217 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 218 | |                         Expression::Identifier("a")
[INFO] [stdout] 219 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:216:36
[INFO] [stdout]     |
[INFO] [stdout] 216 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:216:36
[INFO] [stdout]     |
[INFO] [stdout] 216 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 217 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 218 | |                         Expression::Identifier("a")
[INFO] [stdout] 219 | |                     ]}})
[INFO] [stdout] 220 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 220 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:215:13
[INFO] [stdout]     |
[INFO] [stdout] 215 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:222:64
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:223:80
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:224:84
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:224:40
[INFO] [stdout]     |
[INFO] [stdout] 224 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:224:40
[INFO] [stdout]     |
[INFO] [stdout] 224 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 225 | |                         Expression::Identifier("b")
[INFO] [stdout] 226 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 226 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:223:36
[INFO] [stdout]     |
[INFO] [stdout] 223 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:223:36
[INFO] [stdout]     |
[INFO] [stdout] 223 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 224 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 225 | |                         Expression::Identifier("b")
[INFO] [stdout] 226 | |                     ]}})
[INFO] [stdout] 227 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:229:62
[INFO] [stdout]     |
[INFO] [stdout] 229 |             Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |                                                              ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:230:80
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:230:36
[INFO] [stdout]     |
[INFO] [stdout] 230 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:230:36
[INFO] [stdout]     |
[INFO] [stdout] 230 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 231 | |                     Expression::Identifier("a"),
[INFO] [stdout] 232 | |                     Expression::Identifier("false"),
[INFO] [stdout] 233 | |                     Expression::Identifier("true")
[INFO] [stdout] 234 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 234 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:229:13
[INFO] [stdout]     |
[INFO] [stdout] 229 |             Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:208:5
[INFO] [stdout]     |
[INFO] [stdout] 208 | /     assert_eq!(
[INFO] [stdout] 209 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 210 | |             true = a -> b -> a
[INFO] [stdout] 211 | |             false = a -> b -> b
[INFO] [stdout] ...   |
[INFO] [stdout] 236 | |         ]})
[INFO] [stdout] 237 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:255:63
[INFO] [stdout]     |
[INFO] [stdout] 255 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:256:80
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:257:84
[INFO] [stdout]     |
[INFO] [stdout] 257 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:257:40
[INFO] [stdout]     |
[INFO] [stdout] 257 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:257:40
[INFO] [stdout]     |
[INFO] [stdout] 257 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 258 | |                         Expression::Identifier("a")
[INFO] [stdout] 259 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 259 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:256:36
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:256:36
[INFO] [stdout]     |
[INFO] [stdout] 256 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 257 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 258 | |                         Expression::Identifier("a")
[INFO] [stdout] 259 | |                     ]}})
[INFO] [stdout] 260 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:255:13
[INFO] [stdout]     |
[INFO] [stdout] 255 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:262:64
[INFO] [stdout]     |
[INFO] [stdout] 262 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:263:80
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:264:84
[INFO] [stdout]     |
[INFO] [stdout] 264 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:264:40
[INFO] [stdout]     |
[INFO] [stdout] 264 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:264:40
[INFO] [stdout]     |
[INFO] [stdout] 264 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 265 | |                         Expression::Identifier("b")
[INFO] [stdout] 266 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:263:36
[INFO] [stdout]     |
[INFO] [stdout] 263 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:263:36
[INFO] [stdout]     |
[INFO] [stdout] 263 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 264 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 265 | |                         Expression::Identifier("b")
[INFO] [stdout] 266 | |                     ]}})
[INFO] [stdout] 267 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:262:13
[INFO] [stdout]     |
[INFO] [stdout] 262 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:269:62
[INFO] [stdout]     |
[INFO] [stdout] 269 |             Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |                                                              ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:270:80
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:270:36
[INFO] [stdout]     |
[INFO] [stdout] 270 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:270:36
[INFO] [stdout]     |
[INFO] [stdout] 270 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 271 | |                     Expression::Identifier("a"),
[INFO] [stdout] 272 | |                     Expression::Identifier("false"),
[INFO] [stdout] 273 | |                     Expression::Identifier("true")
[INFO] [stdout] 274 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:269:13
[INFO] [stdout]     |
[INFO] [stdout] 269 |             Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:254:12
[INFO] [stdout]     |
[INFO] [stdout] 254 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:242:5
[INFO] [stdout]     |
[INFO] [stdout] 242 | /     assert_eq!(
[INFO] [stdout] 243 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 244 | |             true =
[INFO] [stdout] 245 | |                 a ->
[INFO] [stdout] ...   |
[INFO] [stdout] 276 | |         ]})
[INFO] [stdout] 277 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:288:60
[INFO] [stdout]     |
[INFO] [stdout] 288 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:289:55
[INFO] [stdout]     |
[INFO] [stdout] 289 |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:289:41
[INFO] [stdout]     |
[INFO] [stdout] 289 |                   Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _________________-----------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 290 | |                     Expression::Identifier("a"),
[INFO] [stdout] 291 | |                     Expression::Identifier("b")
[INFO] [stdout] 292 | |                 ]})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 ]}.into())
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:288:13
[INFO] [stdout]     |
[INFO] [stdout] 288 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:294:60
[INFO] [stdout]     |
[INFO] [stdout] 294 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:295:55
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:295:41
[INFO] [stdout]     |
[INFO] [stdout] 295 |                   Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _________________-----------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 296 | |                     Expression::Identifier("a"),
[INFO] [stdout] 297 | |                     Expression::Identifier("b")
[INFO] [stdout] 298 | |                 ]})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 298 |                 ]}.into())
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:300:60
[INFO] [stdout]     |
[INFO] [stdout] 300 |             Assignment { target: "z", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:301:55
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:301:41
[INFO] [stdout]     |
[INFO] [stdout] 301 |                   Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _________________-----------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 302 | |                     Expression::Identifier("a"),
[INFO] [stdout] 303 | |                     Expression::Identifier("b")
[INFO] [stdout] 304 | |                 ]})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 ]}.into())
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:300:13
[INFO] [stdout]     |
[INFO] [stdout] 300 |             Assignment { target: "z", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:287:12
[INFO] [stdout]     |
[INFO] [stdout] 287 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:278:5
[INFO] [stdout]     |
[INFO] [stdout] 278 | /     assert_eq!(
[INFO] [stdout] 279 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 280 | |             x =
[INFO] [stdout] 281 | |                 (a b)
[INFO] [stdout] ...   |
[INFO] [stdout] 306 | |         ]})
[INFO] [stdout] 307 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:321:60
[INFO] [stdout]     |
[INFO] [stdout] 321 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:322:55
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:322:41
[INFO] [stdout]     |
[INFO] [stdout] 322 |                   Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _________________-----------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 323 | |                     Expression::Identifier("a"),
[INFO] [stdout] 324 | |                     Expression::Identifier("b")
[INFO] [stdout] 325 | |                 ]})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 325 |                 ]}.into())
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:327:60
[INFO] [stdout]     |
[INFO] [stdout] 327 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:327:13
[INFO] [stdout]     |
[INFO] [stdout] 327 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:320:12
[INFO] [stdout]     |
[INFO] [stdout] 320 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:312:5
[INFO] [stdout]     |
[INFO] [stdout] 312 | /     assert_eq!(
[INFO] [stdout] 313 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 314 | |             x = (
[INFO] [stdout] 315 | |                 a
[INFO] [stdout] ...   |
[INFO] [stdout] 330 | |         ]})
[INFO] [stdout] 331 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:340:60
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:341:55
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:342:84
[INFO] [stdout]     |
[INFO] [stdout] 342 |                     Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:342:40
[INFO] [stdout]     |
[INFO] [stdout] 342 |                     Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:342:40
[INFO] [stdout]     |
[INFO] [stdout] 342 |                       Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 343 | |                         Expression::Identifier("b"),
[INFO] [stdout] 344 | |                         Expression::Identifier("c")
[INFO] [stdout] 345 | |                     ]}}),
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 345 |                     ]}}.into()),
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:341:41
[INFO] [stdout]     |
[INFO] [stdout] 341 |                   Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _________________-----------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 342 | |                     Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 343 | |                         Expression::Identifier("b"),
[INFO] [stdout] 344 | |                         Expression::Identifier("c")
[INFO] [stdout] 345 | |                     ]}}),
[INFO] [stdout] 346 | |                 ]})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 346 |                 ]}.into())
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:340:13
[INFO] [stdout]     |
[INFO] [stdout] 340 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:348:60
[INFO] [stdout]     |
[INFO] [stdout] 348 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:348:13
[INFO] [stdout]     |
[INFO] [stdout] 348 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:339:12
[INFO] [stdout]     |
[INFO] [stdout] 339 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:332:5
[INFO] [stdout]     |
[INFO] [stdout] 332 | /     assert_eq!(
[INFO] [stdout] 333 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 334 | |             x = (a -> b
[INFO] [stdout] 335 | |                 c
[INFO] [stdout] ...   |
[INFO] [stdout] 351 | |         ]})
[INFO] [stdout] 352 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:361:60
[INFO] [stdout]     |
[INFO] [stdout] 361 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:362:55
[INFO] [stdout]     |
[INFO] [stdout] 362 |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                       ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:363:59
[INFO] [stdout]     |
[INFO] [stdout] 363 |                     Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |                                                           ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:364:88
[INFO] [stdout]     |
[INFO] [stdout] 364 |                         Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                        ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:364:44
[INFO] [stdout]     |
[INFO] [stdout] 364 |                         Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                            ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:364:44
[INFO] [stdout]     |
[INFO] [stdout] 364 |                           Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________________------------------_^
[INFO] [stdout]     | |                         |
[INFO] [stdout]     | |                         arguments to this enum variant are incorrect
[INFO] [stdout] 365 | |                             Expression::Identifier("b"),
[INFO] [stdout] 366 | |                         ]}}),
[INFO] [stdout]     | |___________________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 366 |                         ]}}.into()),
[INFO] [stdout]     |                            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:363:45
[INFO] [stdout]     |
[INFO] [stdout] 363 |                       Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _____________________-----------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 364 | |                         Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 365 | |                             Expression::Identifier("b"),
[INFO] [stdout] 366 | |                         ]}}),
[INFO] [stdout] 367 | |                     ]}),
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 367 |                     ]}.into()),
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:362:41
[INFO] [stdout]     |
[INFO] [stdout] 362 |                   Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout]     |  _________________-----------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 363 | |                     Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 364 | |                         Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 365 | |                             Expression::Identifier("b"),
[INFO] [stdout] ...   |
[INFO] [stdout] 368 | |                     Expression::Identifier("c")
[INFO] [stdout] 369 | |                 ]})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:28:5
[INFO] [stdout]     |
[INFO] [stdout] 28  |     Parenthesis(Rc<Application<'i, D>>),
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 369 |                 ]}.into())
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:361:13
[INFO] [stdout]     |
[INFO] [stdout] 361 |             Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:371:60
[INFO] [stdout]     |
[INFO] [stdout] 371 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |                                                            ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:371:13
[INFO] [stdout]     |
[INFO] [stdout] 371 |             Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:360:12
[INFO] [stdout]     |
[INFO] [stdout] 360 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:353:5
[INFO] [stdout]     |
[INFO] [stdout] 353 | /     assert_eq!(
[INFO] [stdout] 354 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 355 | |             x = ((a -> b)
[INFO] [stdout] 356 | |                 c
[INFO] [stdout] ...   |
[INFO] [stdout] 374 | |         ]})
[INFO] [stdout] 375 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:413:63
[INFO] [stdout]     |
[INFO] [stdout] 413 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:414:80
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:415:84
[INFO] [stdout]     |
[INFO] [stdout] 415 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:415:40
[INFO] [stdout]     |
[INFO] [stdout] 415 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:415:40
[INFO] [stdout]     |
[INFO] [stdout] 415 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 416 | |                         Expression::Identifier("a")
[INFO] [stdout] 417 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 417 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:414:36
[INFO] [stdout]     |
[INFO] [stdout] 414 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:414:36
[INFO] [stdout]     |
[INFO] [stdout] 414 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 415 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 416 | |                         Expression::Identifier("a")
[INFO] [stdout] 417 | |                     ]}})
[INFO] [stdout] 418 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 418 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:413:13
[INFO] [stdout]     |
[INFO] [stdout] 413 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:420:64
[INFO] [stdout]     |
[INFO] [stdout] 420 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:421:80
[INFO] [stdout]     |
[INFO] [stdout] 421 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:422:84
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:422:40
[INFO] [stdout]     |
[INFO] [stdout] 422 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:422:40
[INFO] [stdout]     |
[INFO] [stdout] 422 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 423 | |                         Expression::Identifier("b")
[INFO] [stdout] 424 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:421:36
[INFO] [stdout]     |
[INFO] [stdout] 421 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:421:36
[INFO] [stdout]     |
[INFO] [stdout] 421 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 422 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 423 | |                         Expression::Identifier("b")
[INFO] [stdout] 424 | |                     ]}})
[INFO] [stdout] 425 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:420:13
[INFO] [stdout]     |
[INFO] [stdout] 420 |             Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:427:62
[INFO] [stdout]     |
[INFO] [stdout] 427 |             Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |                                                              ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:428:80
[INFO] [stdout]     |
[INFO] [stdout] 428 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:428:36
[INFO] [stdout]     |
[INFO] [stdout] 428 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:428:36
[INFO] [stdout]     |
[INFO] [stdout] 428 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 429 | |                     Expression::Identifier("a"),
[INFO] [stdout] 430 | |                     Expression::Identifier("false"),
[INFO] [stdout] 431 | |                     Expression::Identifier("true")
[INFO] [stdout] 432 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 432 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:427:13
[INFO] [stdout]     |
[INFO] [stdout] 427 |             Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:412:12
[INFO] [stdout]     |
[INFO] [stdout] 412 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:403:5
[INFO] [stdout]     |
[INFO] [stdout] 403 | /     assert_eq!(
[INFO] [stdout] 404 | |         LambdaParser::parse_program(r"
[INFO] [stdout] 405 | |             # the two possible bools
[INFO] [stdout] 406 | |             true = a -> b -> a
[INFO] [stdout] ...   |
[INFO] [stdout] 434 | |         ]})
[INFO] [stdout] 435 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:444:63
[INFO] [stdout]     |
[INFO] [stdout] 444 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |                                                               ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:445:80
[INFO] [stdout]     |
[INFO] [stdout] 445 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0560]: struct `generic::Application<'_, NoData>` has no field named `expressions`
[INFO] [stdout]    --> src/parser/test.rs:446:84
[INFO] [stdout]     |
[INFO] [stdout] 446 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                                                                    ^^^^^^^^^^^ `generic::Application<'_, NoData>` does not have this field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `head`, `tail`, `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:446:40
[INFO] [stdout]     |
[INFO] [stdout] 446 |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |                                        ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:446:40
[INFO] [stdout]     |
[INFO] [stdout] 446 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  _____________________------------------_^
[INFO] [stdout]     | |                     |
[INFO] [stdout]     | |                     arguments to this enum variant are incorrect
[INFO] [stdout] 447 | |                         Expression::Identifier("a")
[INFO] [stdout] 448 | |                     ]}})
[INFO] [stdout]     | |_______________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 448 |                     ]}}.into())
[INFO] [stdout]     |                        +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Lambda<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:445:36
[INFO] [stdout]     |
[INFO] [stdout] 445 |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |                                    ^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:445:36
[INFO] [stdout]     |
[INFO] [stdout] 445 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  _________________------------------_^
[INFO] [stdout]     | |                 |
[INFO] [stdout]     | |                 arguments to this enum variant are incorrect
[INFO] [stdout] 446 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 447 | |                         Expression::Identifier("a")
[INFO] [stdout] 448 | |                     ]}})
[INFO] [stdout] 449 | |                 ]}})
[INFO] [stdout]     | |___________________^ expected `Rc<Lambda<'_, NoData>>`, found `Lambda<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Lambda<'_, _>>`
[INFO] [stdout]                found struct `generic::Lambda<'_, _>`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/ast/generic.rs:27:5
[INFO] [stdout]     |
[INFO] [stdout] 27  |     Lambda(Rc<Lambda<'i, D>>),
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Lambda<'_, NoData>` into `Rc<generic::Lambda<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 449 |                 ]}}.into())
[INFO] [stdout]     |                    +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Assignment<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:444:13
[INFO] [stdout]     |
[INFO] [stdout] 444 |             Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |             ^^^^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0063]: missing field `data` in initializer of `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/parser/test.rs:443:12
[INFO] [stdout]     |
[INFO] [stdout] 443 |         Ok(Program { assignments: vec![
[INFO] [stdout]     |            ^^^^^^^ missing `data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<generic::Program<'_, NoData>, error::Error>`
[INFO] [stdout]    --> src/parser/test.rs:436:5
[INFO] [stdout]     |
[INFO] [stdout] 436 | /     assert_eq!(
[INFO] [stdout] 437 | |         LambdaParser::parse_program(r"# foo
[INFO] [stdout] 438 | |             # bar
[INFO] [stdout] ...   |
[INFO] [stdout] 451 | |         ]})
[INFO] [stdout] 452 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |       Result<generic::Program<'_, NoData>, error::Error>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `generic::Program<'_, NoData>`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `generic::Program<'_, NoData>` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/ast/generic.rs:47:1
[INFO] [stdout]     |
[INFO] [stdout] 47  + #[derive(PartialEq)]
[INFO] [stdout] 48  | pub struct Program<'i, D: ASTData<'i>> {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:18:42
[INFO] [stdout]    |
[INFO] [stdout] 18 |           Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |  __________________________________________^
[INFO] [stdout] 19 | |             Expression::Identifier("b")
[INFO] [stdout] 20 | |         ]}})
[INFO] [stdout]    | |__________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 20 |         ]}.into()})
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:25:62
[INFO] [stdout]    |
[INFO] [stdout] 25 |               Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]    |  ______________________________________________________________^
[INFO] [stdout] 26 | |                 Expression::Identifier("c")
[INFO] [stdout] 27 | |             ]}})
[INFO] [stdout]    | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 27 |             ]}.into()})
[INFO] [stdout]    |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:24:42
[INFO] [stdout]    |
[INFO] [stdout] 24 |           Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |  __________________________________________^
[INFO] [stdout] 25 | |             Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 26 | |                 Expression::Identifier("c")
[INFO] [stdout] 27 | |             ]}})
[INFO] [stdout] 28 | |         ]}})
[INFO] [stdout]    | |__________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 28 |         ]}.into()})
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:32:42
[INFO] [stdout]    |
[INFO] [stdout] 32 |           Ok(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |  __________________________________________^
[INFO] [stdout] 33 | |             Expression::Identifier("b"),
[INFO] [stdout] 34 | |             Expression::Identifier("c")
[INFO] [stdout] 35 | |         ]}})
[INFO] [stdout]    | |__________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 35 |         ]}.into()})
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:75:66
[INFO] [stdout]    |
[INFO] [stdout] 75 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]    |  __________________________________________________________________^
[INFO] [stdout] 76 | |                     Expression::Identifier("a")
[INFO] [stdout] 77 | |                 ]}})
[INFO] [stdout]    | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 77 |                 ]}.into()})
[INFO] [stdout]    |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:80:66
[INFO] [stdout]    |
[INFO] [stdout] 80 |                   Expression::Lambda(Lambda { argument: "c", body: Application { expressions: vec![
[INFO] [stdout]    |  __________________________________________________________________^
[INFO] [stdout] 81 | |                     Expression::Identifier("c")
[INFO] [stdout] 82 | |                 ]}})
[INFO] [stdout]    | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 82 |                 ]}.into()})
[INFO] [stdout]    |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/parser/test.rs:73:61
[INFO] [stdout]    |
[INFO] [stdout] 73 |           Ok(Expression::Lambda(Lambda { argument: "e", body: Application { expressions: vec![
[INFO] [stdout]    |  _____________________________________________________________^
[INFO] [stdout] 74 | |             Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 75 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 76 | |                     Expression::Identifier("a")
[INFO] [stdout] ...  |
[INFO] [stdout] 84 | |             Expression::Identifier("e")
[INFO] [stdout] 85 | |         ]}}))
[INFO] [stdout]    | |__________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]               found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]    |
[INFO] [stdout] 85 |         ]}.into()}))
[INFO] [stdout]    |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:130:62
[INFO] [stdout]     |
[INFO] [stdout] 130 |               Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________^
[INFO] [stdout] 131 | |                 Expression::Identifier("c")
[INFO] [stdout] 132 | |             ]}})
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 132 |             ]}.into()})
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:142:62
[INFO] [stdout]     |
[INFO] [stdout] 142 |               Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________^
[INFO] [stdout] 143 | |                 Expression::Identifier("a")
[INFO] [stdout] 144 | |             ]}})
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 144 |             ]}.into()})
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:141:49
[INFO] [stdout]     |
[INFO] [stdout] 141 |           Ok(Assignment { target: "ident", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 142 | |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 143 | |                 Expression::Identifier("a")
[INFO] [stdout] 144 | |             ]}})
[INFO] [stdout] 145 | |         ]}})
[INFO] [stdout]     | |__________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 145 |         ]}.into()})
[INFO] [stdout]     |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:151:66
[INFO] [stdout]     |
[INFO] [stdout] 151 |                   Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 152 | |                     Expression::Identifier("a"),
[INFO] [stdout] 153 | |                     Expression::Identifier("b"),
[INFO] [stdout] 154 | |                     Expression::Identifier("false")
[INFO] [stdout] 155 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:150:62
[INFO] [stdout]     |
[INFO] [stdout] 150 |               Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________^
[INFO] [stdout] 151 | |                 Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 152 | |                     Expression::Identifier("a"),
[INFO] [stdout] 153 | |                     Expression::Identifier("b"),
[INFO] [stdout] 154 | |                     Expression::Identifier("false")
[INFO] [stdout] 155 | |                 ]}})
[INFO] [stdout] 156 | |             ]}})
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 156 |             ]}.into()})
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:149:47
[INFO] [stdout]     |
[INFO] [stdout] 149 |           Ok(Assignment { target: "and", value: Application { expressions: vec![
[INFO] [stdout]     |  _______________________________________________^
[INFO] [stdout] 150 | |             Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 151 | |                 Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 152 | |                     Expression::Identifier("a"),
[INFO] [stdout] ...   |
[INFO] [stdout] 156 | |             ]}})
[INFO] [stdout] 157 | |         ]}})
[INFO] [stdout]     | |__________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 157 |         ]}.into()})
[INFO] [stdout]     |           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:168:70
[INFO] [stdout]     |
[INFO] [stdout] 168 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 169 | |                         Expression::Identifier("a")
[INFO] [stdout] 170 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 170 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:167:66
[INFO] [stdout]     |
[INFO] [stdout] 167 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 168 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 169 | |                         Expression::Identifier("a")
[INFO] [stdout] 170 | |                     ]}})
[INFO] [stdout] 171 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 171 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:166:49
[INFO] [stdout]     |
[INFO] [stdout] 166 |               Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 167 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 168 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 169 | |                         Expression::Identifier("a")
[INFO] [stdout] 170 | |                     ]}})
[INFO] [stdout] 171 | |                 ]}})
[INFO] [stdout] 172 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 172 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:182:70
[INFO] [stdout]     |
[INFO] [stdout] 182 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 183 | |                         Expression::Identifier("a")
[INFO] [stdout] 184 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:181:66
[INFO] [stdout]     |
[INFO] [stdout] 181 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 182 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 183 | |                         Expression::Identifier("a")
[INFO] [stdout] 184 | |                     ]}})
[INFO] [stdout] 185 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 185 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:180:49
[INFO] [stdout]     |
[INFO] [stdout] 180 |               Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 181 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 182 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 183 | |                         Expression::Identifier("a")
[INFO] [stdout] 184 | |                     ]}})
[INFO] [stdout] 185 | |                 ]}})
[INFO] [stdout] 186 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 186 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:194:70
[INFO] [stdout]     |
[INFO] [stdout] 194 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 195 | |                         Expression::Identifier("a")
[INFO] [stdout] 196 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 196 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:193:66
[INFO] [stdout]     |
[INFO] [stdout] 193 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 194 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 195 | |                         Expression::Identifier("a")
[INFO] [stdout] 196 | |                     ]}})
[INFO] [stdout] 197 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 197 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:192:49
[INFO] [stdout]     |
[INFO] [stdout] 192 |               Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 193 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 194 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 195 | |                         Expression::Identifier("a")
[INFO] [stdout] 196 | |                     ]}})
[INFO] [stdout] 197 | |                 ]}})
[INFO] [stdout] 198 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 198 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:201:70
[INFO] [stdout]     |
[INFO] [stdout] 201 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 202 | |                         Expression::Identifier("b")
[INFO] [stdout] 203 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 203 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:200:66
[INFO] [stdout]     |
[INFO] [stdout] 200 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 201 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 202 | |                         Expression::Identifier("b")
[INFO] [stdout] 203 | |                     ]}})
[INFO] [stdout] 204 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 204 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:199:50
[INFO] [stdout]     |
[INFO] [stdout] 199 |               Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________^
[INFO] [stdout] 200 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 201 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 202 | |                         Expression::Identifier("b")
[INFO] [stdout] 203 | |                     ]}})
[INFO] [stdout] 204 | |                 ]}})
[INFO] [stdout] 205 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 205 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:217:70
[INFO] [stdout]     |
[INFO] [stdout] 217 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 218 | |                         Expression::Identifier("a")
[INFO] [stdout] 219 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:216:66
[INFO] [stdout]     |
[INFO] [stdout] 216 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 217 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 218 | |                         Expression::Identifier("a")
[INFO] [stdout] 219 | |                     ]}})
[INFO] [stdout] 220 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 220 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:215:49
[INFO] [stdout]     |
[INFO] [stdout] 215 |               Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 216 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 217 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 218 | |                         Expression::Identifier("a")
[INFO] [stdout] 219 | |                     ]}})
[INFO] [stdout] 220 | |                 ]}})
[INFO] [stdout] 221 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 221 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:224:70
[INFO] [stdout]     |
[INFO] [stdout] 224 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 225 | |                         Expression::Identifier("b")
[INFO] [stdout] 226 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 226 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:223:66
[INFO] [stdout]     |
[INFO] [stdout] 223 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 224 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 225 | |                         Expression::Identifier("b")
[INFO] [stdout] 226 | |                     ]}})
[INFO] [stdout] 227 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 227 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:222:50
[INFO] [stdout]     |
[INFO] [stdout] 222 |               Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________^
[INFO] [stdout] 223 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 224 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 225 | |                         Expression::Identifier("b")
[INFO] [stdout] 226 | |                     ]}})
[INFO] [stdout] 227 | |                 ]}})
[INFO] [stdout] 228 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 228 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:230:66
[INFO] [stdout]     |
[INFO] [stdout] 230 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 231 | |                     Expression::Identifier("a"),
[INFO] [stdout] 232 | |                     Expression::Identifier("false"),
[INFO] [stdout] 233 | |                     Expression::Identifier("true")
[INFO] [stdout] 234 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 234 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:229:48
[INFO] [stdout]     |
[INFO] [stdout] 229 |               Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |  ________________________________________________^
[INFO] [stdout] 230 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 231 | |                     Expression::Identifier("a"),
[INFO] [stdout] 232 | |                     Expression::Identifier("false"),
[INFO] [stdout] 233 | |                     Expression::Identifier("true")
[INFO] [stdout] 234 | |                 ]}})
[INFO] [stdout] 235 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 235 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:257:70
[INFO] [stdout]     |
[INFO] [stdout] 257 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 258 | |                         Expression::Identifier("a")
[INFO] [stdout] 259 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 259 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:256:66
[INFO] [stdout]     |
[INFO] [stdout] 256 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 257 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 258 | |                         Expression::Identifier("a")
[INFO] [stdout] 259 | |                     ]}})
[INFO] [stdout] 260 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 260 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:255:49
[INFO] [stdout]     |
[INFO] [stdout] 255 |               Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 256 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 257 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 258 | |                         Expression::Identifier("a")
[INFO] [stdout] 259 | |                     ]}})
[INFO] [stdout] 260 | |                 ]}})
[INFO] [stdout] 261 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 261 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:264:70
[INFO] [stdout]     |
[INFO] [stdout] 264 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 265 | |                         Expression::Identifier("b")
[INFO] [stdout] 266 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 266 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:263:66
[INFO] [stdout]     |
[INFO] [stdout] 263 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 264 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 265 | |                         Expression::Identifier("b")
[INFO] [stdout] 266 | |                     ]}})
[INFO] [stdout] 267 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 267 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:262:50
[INFO] [stdout]     |
[INFO] [stdout] 262 |               Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________^
[INFO] [stdout] 263 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 264 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 265 | |                         Expression::Identifier("b")
[INFO] [stdout] 266 | |                     ]}})
[INFO] [stdout] 267 | |                 ]}})
[INFO] [stdout] 268 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 268 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:270:66
[INFO] [stdout]     |
[INFO] [stdout] 270 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 271 | |                     Expression::Identifier("a"),
[INFO] [stdout] 272 | |                     Expression::Identifier("false"),
[INFO] [stdout] 273 | |                     Expression::Identifier("true")
[INFO] [stdout] 274 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 274 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:269:48
[INFO] [stdout]     |
[INFO] [stdout] 269 |               Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |  ________________________________________________^
[INFO] [stdout] 270 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 271 | |                     Expression::Identifier("a"),
[INFO] [stdout] 272 | |                     Expression::Identifier("false"),
[INFO] [stdout] 273 | |                     Expression::Identifier("true")
[INFO] [stdout] 274 | |                 ]}})
[INFO] [stdout] 275 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 275 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:288:46
[INFO] [stdout]     |
[INFO] [stdout] 288 |               Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 289 | |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 290 | |                     Expression::Identifier("a"),
[INFO] [stdout] 291 | |                     Expression::Identifier("b")
[INFO] [stdout] 292 | |                 ]})
[INFO] [stdout] 293 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 293 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:294:46
[INFO] [stdout]     |
[INFO] [stdout] 294 |               Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 295 | |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 296 | |                     Expression::Identifier("a"),
[INFO] [stdout] 297 | |                     Expression::Identifier("b")
[INFO] [stdout] 298 | |                 ]})
[INFO] [stdout] 299 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 299 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:300:46
[INFO] [stdout]     |
[INFO] [stdout] 300 |               Assignment { target: "z", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 301 | |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 302 | |                     Expression::Identifier("a"),
[INFO] [stdout] 303 | |                     Expression::Identifier("b")
[INFO] [stdout] 304 | |                 ]})
[INFO] [stdout] 305 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 305 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:321:46
[INFO] [stdout]     |
[INFO] [stdout] 321 |               Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 322 | |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 323 | |                     Expression::Identifier("a"),
[INFO] [stdout] 324 | |                     Expression::Identifier("b")
[INFO] [stdout] 325 | |                 ]})
[INFO] [stdout] 326 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 326 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:327:46
[INFO] [stdout]     |
[INFO] [stdout] 327 |               Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 328 | |                 Expression::Identifier("a"),
[INFO] [stdout] 329 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 329 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:342:70
[INFO] [stdout]     |
[INFO] [stdout] 342 |                       Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 343 | |                         Expression::Identifier("b"),
[INFO] [stdout] 344 | |                         Expression::Identifier("c")
[INFO] [stdout] 345 | |                     ]}}),
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 345 |                     ]}.into()}),
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:340:46
[INFO] [stdout]     |
[INFO] [stdout] 340 |               Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 341 | |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 342 | |                     Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 343 | |                         Expression::Identifier("b"),
[INFO] [stdout] ...   |
[INFO] [stdout] 346 | |                 ]})
[INFO] [stdout] 347 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 347 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:348:46
[INFO] [stdout]     |
[INFO] [stdout] 348 |               Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 349 | |                 Expression::Identifier("a"),
[INFO] [stdout] 350 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 350 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:364:74
[INFO] [stdout]     |
[INFO] [stdout] 364 |                           Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________________^
[INFO] [stdout] 365 | |                             Expression::Identifier("b"),
[INFO] [stdout] 366 | |                         ]}}),
[INFO] [stdout]     | |__________________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 366 |                         ]}.into()}),
[INFO] [stdout]     |                           +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:361:46
[INFO] [stdout]     |
[INFO] [stdout] 361 |               Assignment { target: "x", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 362 | |                 Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 363 | |                     Expression::Parenthesis(Application { expressions: vec![
[INFO] [stdout] 364 | |                         Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] ...   |
[INFO] [stdout] 369 | |                 ]})
[INFO] [stdout] 370 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 370 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:371:46
[INFO] [stdout]     |
[INFO] [stdout] 371 |               Assignment { target: "y", value: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________^
[INFO] [stdout] 372 | |                 Expression::Identifier("a"),
[INFO] [stdout] 373 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 373 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:415:70
[INFO] [stdout]     |
[INFO] [stdout] 415 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 416 | |                         Expression::Identifier("a")
[INFO] [stdout] 417 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 417 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:414:66
[INFO] [stdout]     |
[INFO] [stdout] 414 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 415 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 416 | |                         Expression::Identifier("a")
[INFO] [stdout] 417 | |                     ]}})
[INFO] [stdout] 418 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 418 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:413:49
[INFO] [stdout]     |
[INFO] [stdout] 413 |               Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 414 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 415 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 416 | |                         Expression::Identifier("a")
[INFO] [stdout] 417 | |                     ]}})
[INFO] [stdout] 418 | |                 ]}})
[INFO] [stdout] 419 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 419 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:422:70
[INFO] [stdout]     |
[INFO] [stdout] 422 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 423 | |                         Expression::Identifier("b")
[INFO] [stdout] 424 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 424 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:421:66
[INFO] [stdout]     |
[INFO] [stdout] 421 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 422 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 423 | |                         Expression::Identifier("b")
[INFO] [stdout] 424 | |                     ]}})
[INFO] [stdout] 425 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 425 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:420:50
[INFO] [stdout]     |
[INFO] [stdout] 420 |               Assignment { target: "false", value: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________^
[INFO] [stdout] 421 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 422 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 423 | |                         Expression::Identifier("b")
[INFO] [stdout] 424 | |                     ]}})
[INFO] [stdout] 425 | |                 ]}})
[INFO] [stdout] 426 | |             ]}},
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 426 |             ]}.into()},
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:428:66
[INFO] [stdout]     |
[INFO] [stdout] 428 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 429 | |                     Expression::Identifier("a"),
[INFO] [stdout] 430 | |                     Expression::Identifier("false"),
[INFO] [stdout] 431 | |                     Expression::Identifier("true")
[INFO] [stdout] 432 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 432 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:427:48
[INFO] [stdout]     |
[INFO] [stdout] 427 |               Assignment { target: "not", value: Application { expressions: vec![
[INFO] [stdout]     |  ________________________________________________^
[INFO] [stdout] 428 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 429 | |                     Expression::Identifier("a"),
[INFO] [stdout] 430 | |                     Expression::Identifier("false"),
[INFO] [stdout] 431 | |                     Expression::Identifier("true")
[INFO] [stdout] 432 | |                 ]}})
[INFO] [stdout] 433 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 433 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:446:70
[INFO] [stdout]     |
[INFO] [stdout] 446 |                       Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout]     |  ______________________________________________________________________^
[INFO] [stdout] 447 | |                         Expression::Identifier("a")
[INFO] [stdout] 448 | |                     ]}})
[INFO] [stdout]     | |______________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 448 |                     ]}.into()})
[INFO] [stdout]     |                       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:445:66
[INFO] [stdout]     |
[INFO] [stdout] 445 |                   Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout]     |  __________________________________________________________________^
[INFO] [stdout] 446 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 447 | |                         Expression::Identifier("a")
[INFO] [stdout] 448 | |                     ]}})
[INFO] [stdout] 449 | |                 ]}})
[INFO] [stdout]     | |__________________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 449 |                 ]}.into()})
[INFO] [stdout]     |                   +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/parser/test.rs:444:49
[INFO] [stdout]     |
[INFO] [stdout] 444 |               Assignment { target: "true", value: Application { expressions: vec![
[INFO] [stdout]     |  _________________________________________________^
[INFO] [stdout] 445 | |                 Expression::Lambda(Lambda { argument: "a", body: Application { expressions: vec![
[INFO] [stdout] 446 | |                     Expression::Lambda(Lambda { argument: "b", body: Application { expressions: vec![
[INFO] [stdout] 447 | |                         Expression::Identifier("a")
[INFO] [stdout] 448 | |                     ]}})
[INFO] [stdout] 449 | |                 ]}})
[INFO] [stdout] 450 | |             ]}}
[INFO] [stdout]     | |______________^ expected `Rc<Application<'_, NoData>>`, found `Application<'_, NoData>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Rc<generic::Application<'_, _>>`
[INFO] [stdout]                found struct `generic::Application<'_, _>`
[INFO] [stdout] help: call `Into::into` on this expression to convert `generic::Application<'_, NoData>` into `Rc<generic::Application<'_, NoData>>`
[INFO] [stdout]     |
[INFO] [stdout] 450 |             ]}.into()}
[INFO] [stdout]     |               +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0063, E0308, E0369, E0560.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0063`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lambda` (lib test) due to 296 previous errors; 1 warning emitted
[INFO] running `Command { std: "docker" "inspect" "5f804c27bd5a72ad09cde8f574b1e921d7eca8936d4a90122cd09eaae842cd34", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f804c27bd5a72ad09cde8f574b1e921d7eca8936d4a90122cd09eaae842cd34", kill_on_drop: false }`
[INFO] [stdout] 5f804c27bd5a72ad09cde8f574b1e921d7eca8936d4a90122cd09eaae842cd34
